实体框架中的表映射

时间:2011-08-03 14:43:22

标签: .net entity-framework

我有一个Model1.edmx,它有几个表。现在,我不想要表TableA的所有列,所以我创建了另一个实体,并使用表映射将其映射到TableA。

我在做同样的事情时面临很多问题。我得到的错误是,

" Thier primary key may collide".

如果我创建了FK关联,则会显示"Non-Primary-Key column(s) [XXX] are being mapped in both fragments to different conceptual side properties".

我不确定,如果我采取的方法是正确的,因为TableA存在实体集alraedy。

如果这是方法,那将是解决方案。

如果没有,我应该走哪条路。

UPDATE :我确实删除了不需要的属性,我还添加了TableA中其他FK表格的属性。

现在我收到错误" Problem in mapping fragments starting at line 566:Must specify mapping for all key properties (TableAs.ID) of the EntitySet TableAs.

UPDATE 我添加了其他表属性,因为它们是FK,我想在UI中的其他表中添加几列。这是一种好的(或可能的)方法吗?或者我应该为它创建类,然后手动映射类的每个属性? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你的意思是:

  

现在,我不想要表TableA的所有列,所以我创建了另一个实体,并使用表映射将其映射到TableA。

不完全清楚。您是说您只想处理TableA中的一部分列而忽略应用程序中的其他列?假设它们可以为空(或者StoreGeneratedPropertyComputed),您只需在TableA的实体中点击它们并删除它们。

你不能创建另一个映射到TableA的实体,除非你正在处理每层次表继承,这听起来并不像你感兴趣。