实体框架最佳实践

jac*_*kal 3 .net c# asp.net entity-framework

我正在开发ASP.NET(WebForms)应用程序并使用EntityFramework.我想知道使用实体的最佳做法是什么.为整个数据库创建几个实体或为特殊目的创建许多实体?

示例是这样的:我有客户表.此表具有到customers_addresses和customers_phones表的ForeignKey.我在这个数据集上有两个案例

  1. 自动填写客户名称
  2. 显示用户详细信息

对于案例1,我得到一个实体,其中只有"name"列映射到用户到db.对于案例2,我得到了另一个实体,其中包含其他表之间的所有数据和连接.

现在我想知道是否只有单个实体(数字2)对两种情况都有好处.

EF的最佳做法是什么?

Mar*_*arz 7

在您的情况下,我没有看到为自动完成方案设置专门实体的原因.由于您将使用Linq to Entities进行所有查询,因此请确保您仅从实体中选择客户名称,而不是整个实体本身

from Customer cust in ent.Customers
select new {
    CustomerName = cust.CustomerName
};
Run Code Online (Sandbox Code Playgroud)

这样,您在后端仍然可以使用轻量级SQL查询,但是您不会使用不必要的"专用"实体来污染您的模型.

此外,如果您正在使用延迟加载,那么您不必担心EF加载任何相关的实体信息,除非您确实需要它.