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

时间:2012-11-02 09:39:15

标签: c# sql-server asp.net-mvc entity-framework stored-procedures

我目前正忙于其中一个项目并需要一些帮助......

我在MSSQL中创建了一个表值函数,它返回一个表和一个计算列(Distance),并使用Entity Designer将它映射到Entity Framework 5中。

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

但是,因为列Distance不是我表中的真实列,所以我无法为表值函数的每个实体获取该值。

有没有办法解决这个问题?我已尝试使用分部类,但该函数不会将Distance列映射为我的属性。

这里有一些代码可以解释我在这里要做的事情:

IQueryable<Deal> deals = context.GetDealsByTypeLocationSearch(latitude, longitude);
foreach (var d in deals)
{
  Console.Write(d.Distance); 
}

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

1 个答案:

答案 0 :(得分:0)

只需解释答案here,请使用以下属性:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]

编辑:考虑使用数据库第一种方法,您是否考虑过调整DefiningQuery