C# 使用实体框架/ADO.NET从表中删除
我试图从表中删除整行数据。我使用的代码是:C# 使用实体框架/ADO.NET从表中删除,c#,.net,database,entity-framework,ado.net,C#,.net,Database,Entity Framework,Ado.net,我试图从表中删除整行数据。我使用的代码是: OModel.Cart pncart = database.Carts.FirstOrDefault( pn => pn.OrderId == Session["OOID"] && pn.PartNumber == Request.QueryString["PartNumber"]); database.Carts.DeleteOb
OModel.Cart pncart = database.Carts.FirstOrDefault(
pn => pn.OrderId == Session["OOID"] &&
pn.PartNumber == Request.QueryString["PartNumber"]);
database.Carts.DeleteObject(pncart);
database.SaveChanges();
它给我的错误是:
LINQ to实体无法识别方法“System.Object”
get_Item(System.String)'方法,并且无法转换此方法
转换为存储表达式。描述:未处理的异常
在执行当前web请求期间发生。请
查看堆栈跟踪以了解有关错误和位置的更多信息
它起源于代码
异常详细信息:System.NotSupportedException:LINQ到实体
无法识别方法“System.Object get_Item(System.String)”
方法,而此方法无法转换为存储表达式
它说的是关于NotSupportException
,所以我猜你不能这样做
那么,我该如何从表中删除呢?我认为这是正确的方法。我将为
会话[“OOID”]
和请求声明变量。QueryString[“PartNumber”]
而不是在linq表达式中使用它们
我相信它告诉您它无法转换这些操作。我将为
会话[“OOID”]
和请求声明变量。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);
LINQtoEntities被嵌入表达式卡住了(LINQtoSQL处理得更好)。必须将嵌入的表达式分解,以便lambda只包含字符串常量
string ooid = Session["OOID"];
string partNo = Request.QueryString["PartNumber"];
OModel.Cart pncart = database.Carts.FirstOrDefault(
pn => pn.OrderId == ooid && pn.PartNumber == partNo);
谢谢非常感谢。:-)谢谢非常感谢。:-)