我是否需要在实体框架模型中包含所有字段

时间:2010-04-23 12:51:23

标签: c# linq entity-framework

快速提问所有人:

我是否需要在EF模型中包含所有数据库表字段?

例如;我创建了一个仅处理tblPayment和关联表的子模型。现在,我需要编写一个LINQ查询来获取有关项目的一些信息。我通常会通过将tblPayment加到tblInvoice到tblInvoiceItem到tblOrderItem来获得这个。

我想知道当我添加其他表时,是否需要包含tblInvoice和tblInvoiceItem的所有字段?理想的情况下;我只想保留我需要加入的字段,因为如果修改/删除这些表上的其他字段,这将限制我的子模型中断的可能性。

我可以这样做吗?

3 个答案:

答案 0 :(得分:1)

不,你不需要全部包括它们。

但是,GUI映射工具在将现有数据库反向工程为EF模型时,将始终包含所有列,并且没有办法告诉它。

因此,要排除列,您必须执行以下操作之一

  • 自己手动编辑EDMX。只需删除GUI设计器中的列即可,但只能从CSDL中删除列,而不是SSDL。 EF可能会也可能不允许您这样做,具体取决于列的SSDL映射。
  • 从不同的数据库生成模型,该数据库具有类似的模式,但缺少这些字段。
  • 代码优先或模型优先(仅限EF 4)。

答案 1 :(得分:0)

是的,您可以从实体中删除其他字段。

答案 2 :(得分:0)

您不仅可以从实体中删除字段,还可以将实体组合为不同的表格。

Entity Framework

相关问题