c# - Entity Framework 最佳实践

标签 c# .net asp.net entity-framework

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

例子是这样的: 我有客户表。该表具有指向 customers_addresses 和 customers_phones 表的外键。我在这个数据集上有两个案例

  1. 自动完成客户姓名
  2. 显示用户详细信息

对于案例 1,我得到一个实体,它只有“名称”列映射到用户到数据库 对于案例 2,我得到了另一个实体,其中包含其他表之间的所有数据和连接。

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

EF 的最佳实践是什么?

最佳答案

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

from Customer cust in ent.Customers
select new {
    CustomerName = cust.CustomerName
};

这样您仍然可以在后端进行轻量级 SQL 查询,但不会用不必要的“专用”实体污染您的模型。

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

关于c# - Entity Framework 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5502259/

相关文章:

c# - 在 C# 中清除 System.String

.net - .Net 中是否有针对 CSS 媒体类型的系统枚举?

c# - Membership.DeleteUser(UserName,true) 不从角色中删除用户

c# - 如何在 WebForms 中不刷新页面的情况下在服务器上触发事件

c# - ASP.NET 核心 : An attempt to attach an auto-named database for file failed

c# - 尝试获取加密字符串的长度

c# - .Net Core Web API,如果角色或策略匹配则授权操作

c# - 如何将字符串中包含的 XML 解析为 IList<BusinessObject>?

C# 审核覆盖 SaveChanges() 方法。如何从表中找出实体的外键及其值

c# - 我如何进行列表遍历?