我用linq從數據庫中獲取數據之前,但它看起來像使用與Linq的CompiledQuery應該比自己使用Linq。我怎樣才能使用CompiledQuery
我試過使用CompiledQuery,但它拋出一個異常。
以下是我的代碼:
static readonly Func<myEntity, int?, List<myDataModel>> s_compiledQuery2 =
CompiledQuery.Compile<myEntity, int?, List<myDataModel>>
(
(ctx, NULLUserId) =>
(
from jlr in ctx.C_InternetCafe
where jlr.USER_ID != NULLUserId
select new myDataModel
{
pid = jlr.PC_ID ?? 0,
uid= jlr.USER_ID ?? 0
}
).ToList()
);
static List<myDataModel> CompiledQuery2()
{
using (myEntity context = new myEntity())
{
int? UserId = null;
List<myDataModel> orders = s_compiledQuery2.Invoke(context, UserId);
return orders;
}
}
public List<myDataModel> getCustomerInf()
{
return CompiledQuery2();
}
我只是想從表C_InternetCafe
獲取值「PC_ID」和「USER_ID」,並將其添加到myDataModel其數據成員有pid
和uid
。
// -------------------------------------------- --------------------------------
原諒我的疏忽,以下是我得到的例外。
NotSupportedException
{
"LINQ to Entities does not recognize the method
'System.Collections.Generic.List`1
[InternetCafeManager.Web.DataModel.myDataModel]
ToList[myDataModel]
(System.Collections.Generic.IEnumerable`1
[InternetCafeManager.Web.DataModel.myDataModel])' method,
and this method cannot be translated into a store expression"
}
有什麼錯誤?我建議的第一件事是從編譯的查詢體中刪除** ToList **。 – McGarnagle