0

首先是我遇到的错误:

EntitySet 'Z10Entities.Accounts' 中的所有对象都必须具有唯一的主键。但是,“DAL.Model.CreditCardAccount”类型的实例和“DAL.Model.Debt”类型的实例都具有相同的主键值“EntitySet=Accounts;Id=3”。

这是我的架构: 使用每个类型继承表的架构

从我的设计角度来看,该帐户既可以是信用卡类型,也可以被视为债务。我做错了什么还是遇到了 EF 框架(4.3.1 版本)的限制

编辑:为了让我的问题更加清晰,我基本上是想了解框架为什么给我错误,或者动态数据外键 FieldTemplate 是否工作不正常。

编辑 2:这个问题似乎影响了我的应用程序的其他部分。好像我有一个TPT问题:

EntitySet 'Z10Entities.Person' 中的所有对象都必须具有唯一的主键。但是,“DAL.Model.Employer”类型的实例和“DAL.Model.PortalUser”类型的实例都具有相同的主键值,“EntitySet=Person;Id=1b64b850-34f9-e111-bdc8-000c29005764” .

4

1 回答 1

0

好吧,TPT 似乎适用于某些事情而不适用于其他事情。由于我的业务设计,我需要让不同的账户作为债务负责(账户被注销,信用卡关闭等等。)。

由于 PK 到 PK 模式,TPT 无法处理此问题。它必须是指向基表的 FK 到 PK。这种微妙的变化促进了所需的功能,同时也简化了我的 LinqToEF 查询。

这是重构的版本: 现在一切都是正确的:)

于 2013-01-11T23:17:44.543 回答