2011-03-11 40 views
0

我想为我的POS系统设计一个generic Product table,它能够处理多种类型的细节,例如品牌,类别,类型(无论是服务还是产品)以及其他我不知道的来自不同业务的更多或其他事物。可以LINQ to SQL支持单表继承吗?

我已经通过谷歌搜索,似乎这种设计的最佳方法是使用Single Table Inheritancelink

上述说法正确吗?如果是,LINQ to SQL可以处理单表继承方法吗?如果您可以提供一些样品,我会很感激,因为我厌倦了为不同的客户要求修改和添加表格。

+0

您好我的问题有任何想法?请告诉我,如果我的问题不清楚 – VeecoTech 2011-03-13 12:44:32

+0

您好,有任何建议吗? – VeecoTech 2011-03-15 03:17:41

回答

1

“单表继承”模型是LINQ to SQL支持的唯一模型。在这个模型中,您设置了一个鉴别器列(类型),并根据鉴别器的值来指示要创建哪个对象类型。每个实例类型可以具有不同的字段属性。所有类型未使用的列需要设置为空,以便在为给定类型插入其他列时使用空值。

这就是说,我不确定这是您希望从您的声明中看出您“厌倦了为不同客户需求修改和添加表格”的模型。单表方法要求您不仅为表格添加必要的附加列以获取新类型,还要生成新类并编译您的应用程序以满足这些新要求。

您可能想要查看一个键/值对/ NoSql文档数据库方法(http://en.wikipedia.org/wiki/Key- value_store#Key- value_store)。使用键值模型,您的对象的每个属性都有单独的行,其中行由objectId,propertyName和Value组成。这种数据结构允许您在不必更改数据库架构的情况下拥有任何形状。不幸的是,没有内置的机制来获取灵活的数据模型,并将它们映射到LINQ中的扁平对象。如果需要,可以使用.NET 4中的动态类型来构建它。添加UI和业务逻辑是另一项任务。