C# 实体框架4:如何扩展实体?
我已将数据库表导入到C# 实体框架4:如何扩展实体?,c#,.net,entity-framework,C#,.net,Entity Framework,我已将数据库表导入到.edmx文件中,其中我有一个客户实体,如: CustID CustName CustAddress 现在,我想允许用户编辑所选客户,并且我需要显示每个客户拥有的订单数量,因此在显示编辑表单时,我需要向该实体动态添加一个字段-fieldcustomordercount,该字段将从CustomerID={id}的订单中计算sql语句SELECT COUNT(*) 是否有办法扩展实体,以便通过EF选择订单计数,而无需手动执行如下自定义选择: .Select(c => ne
.edmx
文件中,其中我有一个客户
实体,如:
CustID
CustName
CustAddress
现在,我想允许用户编辑所选客户,并且我需要显示每个客户拥有的订单数量,因此在显示编辑表单时,我需要向该实体动态添加一个字段-fieldcustomordercount
,该字段将从CustomerID={id}的订单中计算sql语句SELECT COUNT(*)
是否有办法扩展实体,以便通过EF选择订单计数,而无需手动执行如下自定义选择:
.Select(c => new CustomerExtended
{
CustID = c.CustID,
...
CustOrderCount = db.Orders.Where(o => o.OrderCustID = c.CustID).Count()
}
在edmx文件所在的项目中,创建一个新的partial
类
:
public partial class Customer {}
然后,您可以将自己的属性/方法添加到EF实体:
public partial class Customer {
public int GetSomething(){}
}
否。实体仅从数据库检索表本身中的字段。为此,您必须按照所示进行投影,或者使用@Jason所示的自定义数据检索
在这种情况下,投影到自定义视图模型是正确的解决方案,因为您希望显示一些不属于实体的附加数据。您可以将视图创建到数据库中,将其映射为实体,并使用触发器处理CRUD操作