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