Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 4.0 具有导航属性的EF4复杂类型(是否可能)或替代项?_.net 4.0_Entity Framework 4_Complextype_Navigational Properties - Fatal编程技术网

.net 4.0 具有导航属性的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

我用DB-first方法使用Linq对实体进行建模,并使用POCO实现EF4模型,这一点非常成功

我有两个表:
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
实体。不可能。如果要解决此问题,请将有关人员的数据集中到单个表中,并将其创建为实体。一个(不太理想但可行)选项是只公开复杂类型中的外键列,并使用手动导航属性扩展复杂类型