繁体   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