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

问题描述:

每个人的快速问题:我是否需要在我的实体框架模型中包含所有字段

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

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

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

我可以这样做吗?

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

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

因此,排除列,必须执行以下

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

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

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

Entity Framework