簡體   English   中英

使用Entity Framework / ADO.NET從表中刪除

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM