C# 将存储过程映射到具有附加计算列的实体

C# 将存储过程映射到具有附加计算列的实体,c#,sql-server,asp.net-mvc,entity-framework,stored-procedures,C#,Sql Server,Asp.net Mvc,Entity Framework,Stored Procedures,我目前正忙于我的一个项目,需要一些帮助 我在MSSQL中创建了一个表值函数,它返回一个表和一个计算列(距离),并使用实体设计器将其映射到实体框架5中 问题是,我只能将结果映射为复杂类型或模型类中的实体。我需要在实体中使用一个导航属性,因此,我必须使用我的实体类 但是,由于列距离不是表中的实际列,因此我无法为表值函数的每个实体获取该值 有没有办法破解这个问题?我尝试使用分部类,但该函数无法将距离列映射为属性 这里有一个小代码来解释我在这里要做的事情: IQueryable<Deal>

我目前正忙于我的一个项目,需要一些帮助

我在MSSQL中创建了一个表值函数,它返回一个表和一个计算列(距离),并使用实体设计器将其映射到实体框架5中

问题是,我只能将结果映射为复杂类型或模型类中的实体。我需要在实体中使用一个导航属性,因此,我必须使用我的实体类

但是,由于列距离不是表中的实际列,因此我无法为表值函数的每个实体获取该值

有没有办法破解这个问题?我尝试使用分部类,但该函数无法将距离列映射为属性

这里有一个小代码来解释我在这里要做的事情:

IQueryable<Deal> deals = context.GetDealsByTypeLocationSearch(latitude, longitude);
foreach (var d in deals)
{
  Console.Write(d.Distance); 
}
IQueryable deals=context.GetDealsByTypeLocationSearch(纬度、经度);
foreach(交易中的var d)
{
控制台。写入(d.距离);
}

当我尝试为我的实体交易创建分部类时,距离值为null。

仅解释一下答案,请使用以下属性:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]

编辑:考虑使用数据库优先的方法,您是否考虑过调整?

我忘了提到我是先使用数据库,而不是先使用代码:(如何将此定义查询与存储过程一起使用?我尝试过,但我认为如果要使用基于原始实体的任何导航属性,我也需要在ssdl中创建关联?啊,我想我可能有点误解。不幸的是,复杂类型不支持导航属性。请参阅此处:这也是一个错误。)在这里: