C# 计算值的实体框架核心投影
我有一个C# 计算值的实体框架核心投影,c#,.net,entity-framework,entity-framework-core,computed-properties,C#,.net,Entity Framework,Entity Framework Core,Computed Properties,我有一个User实体,具有FirstName和LastName,因为这是名称在数据库中的存储方式,但我想返回一个带有全名的DTO,这将是一个使用这两个属性的计算属性 目前,我正在这样做: from u in myContext.Users select new { FullName = $"{u.FirstName} {u.LastName}" }; 由于计算了FullName属性,此代码是否会对数据库产生重大影响 在我的用户实体中有一个计算的全名属性是否更好?我很想这样做,但我不知
User
实体,具有FirstName
和LastName
,因为这是名称在数据库中的存储方式,但我想返回一个带有全名的DTO,这将是一个使用这两个属性的计算属性
目前,我正在这样做:
from u in myContext.Users
select new { FullName = $"{u.FirstName} {u.LastName}" };
FullName
属性,此代码是否会对数据库产生重大影响用户
实体中有一个计算的全名
属性是否更好?我很想这样做,但我不知道这样做会有什么缺点。例如,使用computed属性进行过滤定义“缺点”。这是一个非常宽泛的术语。你害怕什么事情会发生?您在客户端将名字和姓氏组合在一起。这会对数据库产生什么影响?@Sefe例如,由于计算出的值,我担心查询将获取所有记录,这些记录将导致更长(时间)和资源消耗的查询。为什么不使用SQL Server Profiler对其进行分析?您是否希望将插值字符串转换为等效的SQL表达式?“由于计算值,我担心查询将获取所有记录”-查询将获取所有记录,因为这是您告诉上下文要执行的操作,与您随后执行的操作无关。抱歉,出于某种原因,我完全没有意识到这是EF核心。您应该能够从VisualStudio中的(调试)输出窗口查看SQL,请参阅