我正在开发ASP.NET(WebForms)应用程序并使用EntityFramework。我想知道使用实体的最佳做法是什么。为整个数据库创建几个实体或为特殊目的创建许多实体?
示例案例是这样的: 我有客户表。此表具有到customers_addresses和customers_phones表的ForeignKey。我在这个数据集上有两个案例
对于案例1,我得到一个实体,其中只有“name”列映射到用户到db 对于案例2,我得到了另一个实体,其中包含其他表之间的所有数据和连接。
现在我想知道是否只有单个实体(数字2)对两种情况都有好处。
EF的最佳做法是什么?
答案 0 :(得分:7)
在您的情况下,我没有看到为自动完成方案设置专门实体的原因。由于您将使用Linq to Entities进行所有查询,因此请确保您仅从实体中选择客户名称,而不是整个实体本身
from Customer cust in ent.Customers
select new {
CustomerName = cust.CustomerName
};
这样你在后端仍然可以使用轻量级的SQL查询,但是你不会用不必要的“专用”实体来污染你的模型。
此外,如果您正在使用延迟加载,那么您不必担心EF加载任何相关的实体信息,除非您确实需要它。