.net 4.0 具有导航属性的EF4复杂类型(是否可能)或替代项?
我用DB-first方法使用Linq对实体进行建模,并使用POCO实现EF4模型,这一点非常成功 我有两个表:.net 4.0 具有导航属性的EF4复杂类型(是否可能)或替代项?,.net-4.0,entity-framework-4,complextype,navigational-properties,.net 4.0,Entity Framework 4,Complextype,Navigational Properties,我用DB-first方法使用Linq对实体进行建模,并使用POCO实现EF4模型,这一点非常成功 我有两个表:Customer和nameprifix,它们通过nameprifix关联。栏目包括: Customer NamePrefix ---------- ---------- CustomerId (PK) NamePrefixId (PK) NamePrefixId (FK) LastName FirstName MiddleInitia
Customer
和nameprifix
,它们通过nameprifix
关联。栏目包括:
Customer NamePrefix
---------- ----------
CustomerId (PK) NamePrefixId (PK)
NamePrefixId (FK)
LastName
FirstName
MiddleInitial
....
在本例中,Customer
实体具有导航属性nameprifix
。
我创建了一个复杂类型nameoperson
,以便在其他实体中使用它。
复合类型包括nameprifixid
,LastName
,FirstName
,MiddleInitial
。
但是现在我在导航属性上收到以下错误消息,指向nameprifix
:
Error 111: There is no property with name 'NamePrefixId' defined in type referred by Role 'Customer'.
有没有办法做到这一点?中直接介绍了这一点。复杂类型不能包含导航属性。任何解决方案/建议,因为我确信我不是第一个遇到这种情况的人?解决方案不包括复杂类型中的导航属性。我的意思是,代替导航属性中的复杂类型,有人能为我需要实现的目标提出一个更好的、有效的方法吗?没有有效的方法。简单地说,您不能将导航属性置于复杂类型。您必须将其直接放置到实体
客户
。如果将客户表拆分为两个实体-Customer
和nameoperson
,则将无法重用nameoperson
实体。不可能。如果要解决此问题,请将有关人员的数据集中到单个表中,并将其创建为实体。一个(不太理想但可行)选项是只公开复杂类型中的外键列,并使用手动导航属性扩展复杂类型