从表与实体框架/ ADO.NET删除
我想从表中删除整行数据。我正在使用的代码是:从表与实体框架/ 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到实体无法识别方法 'System.Object的 get_Item(System.String)'方法,并且此方法不能将 转换为商店表达式。说明:执行当前Web请求期间发生未处理的异常 。请 查看堆栈跟踪以获取有关该错误的更多信息,以及源代码中的 。
异常详细信息:System.NotSupportedException:LINQ实体 不能识别方法“System.Object的get_Item(System.String)” 方法,并且这种方法不能被翻译成表达商店。
它说了一些关于NotSupportException
,所以我猜你不能这样做。
那么,我将如何去从表中删除?我认为这是正确的方法。
我会声明Session["OOID"]
和Request.QueryString["PartNumber"]
的变量,而不是在您的linq表达式中使用它们。
我相信它告诉你它不能翻译这些操作。
LINQ to Entities get被卡在嵌入式表达式上(LINQ to SQL处理这个更好)。您必须将嵌入式表达式分解出来,以便lambda只包含字符串常量。
谢谢!非常感激。 :-) – Arrow 2012-08-03 17:59:56
谢谢!这工作。并感谢您的快速回复。 :-) – Arrow 2012-08-03 17:58:30