Linq to sql Linq to SQL-计算查询返回的对象的属性

Linq to sql Linq to SQL-计算查询返回的对象的属性,linq-to-sql,Linq To Sql,我有一个查询,返回一组对象,在本例中是事件 现在,我想根据标量数据库函数的返回值为这些事件设置一个值。我曾尝试使用代码中的函数来设置属性,但我得到了一个“不支持转换为SQL”的错误,这是有意义的(因为无法将此代码转换为SQL),但我如何才能做到这一点 我想返回事件类型的对象,所以匿名类型的投影是不好的 下面是一些代码: var query = (from e in db.Events select SetDistanceProperty(

我有一个查询,返回一组对象,在本例中是事件

现在,我想根据标量数据库函数的返回值为这些事件设置一个值。我曾尝试使用代码中的函数来设置属性,但我得到了一个“不支持转换为SQL”的错误,这是有意义的(因为无法将此代码转换为SQL),但我如何才能做到这一点

我想返回事件类型的对象,所以匿名类型的投影是不好的

下面是一些代码:

var query = (from e in db.Events 
             select SetDistanceProperty(
                   e, db.DistanceBetween(lat, lon, e.Latitude, e.Longitude)));

private static Event SetDistanceProperty(Event e, double? distance)
{
    if(distance != null)
        e.DistanceFromLocation = (double)distance;
    return e;
}

您可以改为查询内存中的集合:

(from e in db.Events.ToList() 
    select  SetDistanceProperty(e, 
              db.DistanceBetween(lat, lon, 
                   e.Latitude, e.Longitude)));