[英]Deleting from Table with Entity Framework/ADO.NET
我正在嘗試從表中刪除整行數據。 我使用的代碼是:
OModel.Cart pncart = database.Carts.FirstOrDefault(
pn => pn.OrderId == Session["OOID"] &&
pn.PartNumber == Request.QueryString["PartNumber"]);
database.Carts.DeleteObject(pncart);
database.SaveChanges();
它給我的錯誤是:
LINQ to Entities無法識別方法'System.Object get_Item(System.String)',並且該方法無法轉換為商店表達式。 說明:執行當前Web請求期間發生未處理的異常。 請查看堆棧跟蹤,以獲取有關錯誤及其在代碼中起源的更多信息。
異常詳細信息:System.NotSupportedException:LINQ to Entities無法識別方法'System.Object get_Item(System.String)'方法,並且該方法無法轉換為商店表達式。
它說了一些關於NotSupportException
,所以我猜你就是不能這樣。
那么,我將如何從表中刪除呢? 我認為這是正確的方法。
我將為Session["OOID"]
和Request.QueryString["PartNumber"]
聲明變量,而不是在linq表達式中使用它們。
我相信它告訴您它無法翻譯這些操作。
LINQ to Entities被卡在嵌入式表達式上(LINQ to SQL處理得更好)。 您必須將嵌入式表達式分解開,以便lambda僅包含字符串常量。
string ooid = Session["OOID"];
string partNo = Request.QueryString["PartNumber"];
OModel.Cart pncart = database.Carts.FirstOrDefault(
pn => pn.OrderId == ooid && pn.PartNumber == partNo);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.