http://msdn.microsoft.com/en-us/library/bb896297.aspxのMSDNの例に従って、コンパイルされたクエリを作成しようとしています。
これが私のコードです
static readonly Func<newTestDBContext, string, long, IQueryable<RouteQueryModel>> s_compiledQuery2 =
CompiledQuery.Compile<newTestDBContext, string, long, IQueryable<RouteQueryModel>>(
(db, currentLocation, x) =>
from b in db.routes
let avg_rating = b.ratings.Any() ?
b.ratings.Select(r => r.rating1).Average() :
0
let coorCount = b.coordinates.Count()
let is_favorite = b.favorites.Any(c => c.users_id == x) ?
true :
false
let distance_to_first_from_me = b.coordinates.
Select(c => c.position).
FirstOrDefault().
Distance(DbGeography.FromText(currentLocation, 4326))
let distance_to_last_from_me = b.coordinates.
OrderByDescending(c => c.sequence).
Select(d => d.position).
FirstOrDefault().
Distance(DbGeography.FromText(currentLocation, 4326))
let distance_to_from_me = distance_to_first_from_me < distance_to_last_from_me ?
distance_to_first_from_me :
distance_to_last_from_me
select new RouteQueryModel
{
b = b,
distance_to_from_me = distance_to_from_me.Value,
avg_rating = avg_rating,
coorCount = coorCount,
is_favorite = is_favorite
}
);
次のエラーが発生します
エラー1タイプ'W.Models.newTestDBContext'は、ジェネリック型またはメソッド'System.Data.Objects.CompiledQuery.Compile(System.Linq.Expressions.Expression>)'のタイプパラメーター'TArg0'として使用できません。'W.Models.newTestDBContext'から'System.Data.Objects.ObjectContext'への暗黙の参照変換はありません。