我想我会重写这个问题(相同的迭代)。最初是如何围绕 EAV/CR 数据库包装存储库模式。我正在尝试一种不同的方法。
问题:您如何以“工厂”设计模式的方式编写数据存储库? 我有固定数量的实体,但这些实体的属性是相当客户特定的。他们宣传的产品都相似,但每个客户根据他们的商业模式附加不同的信息。例如,有些人关心浪费的百分比,而另一些人关心所售出的磅数。每次我们找到另一个客户时,我们都会添加一堆字段,删除一堆字段,然后花费数小时将每个解决方案与最新的通用版本保持同步。
我认为我们可以将存储库类放在工厂模式中,这样当我知道客户类型时,我就知道他们将使用哪些字段。实际的?更好的方法?Web 表单使用经过修改以反映布局上的字段的用户控件。我们目前将布局上的字段“连接”到产品表中的字段,然后是 CRUD 通用字段。
上一题内容:
我们有一个 EAV/CR 数据模型,它允许同一实体使用不同的类。这会跟踪客户拥有截然不同的产品的产品。客户可以定义产品的“类”,用字段加载它,然后用数据填充它。例如,
Product.Text_Fields.Name
Product.Text_Fields.VitaminEContent
关于如何围绕此包装存储库模式的任何建议?
我们有一个三表 EAV:一个产品表、一个值表和一个列出字段名称和数据类型的元表(我们列出数据类型是因为我们还有其他表,例如 Product.Price 和 Product.Price 元数据)与其他产品,如 Product.Photo。)客户跟踪各种价格,如竞争对手的百分比折扣差异以及即时计算。
我们目前在 C# 中使用 Linq to SQL。
编辑:
我喜欢下面的“动态查询”Linq。我们的数据库背后的想法就像更衣室更衣室存储。每个运动员(或客户)按照他们希望的方式组织他们自己的储物柜,我们会为他们处理存储。我们不在乎储物柜里有什么,只要他们能用它做他们需要的事情。
非常有趣...传递给存储库的对象可能是动态的?这几乎是有道理的,几乎就像工厂模式。客户是否可以将他们自己的类定义放在一个文本文件中,然后我们继承它们并将它们存储在数据库中?