我想从使用中翻译linq语句 select * from dbo.vwListDetails其中productid ='20D9F725-6667-4F3A-893A-7D30FED550BE'
我已经编写了linq语句,但它返回了错误的数据
使用上面的sql语句返回:
productid productname custmerid customername
20D9F725-6667-4F3A-893A-7D30FED550BE nike 1 andy
20D9F725-6667-4F3A-893A-7D30FED550BE nike 2 randy
public IEnumerable<vwListDetails > GetAllListDetailConsumer(Guid productid)
{
ObjectQuery<vwListDetails> cust = db.vwListDetails ;
IEnumerable<vwListDetails> query = from d in cust
where d.productid == productid
select d;
return query;
}
如果我使用上面的linq c#代码返回
productid productname custmerid customer name
20D9F725-6667-4F3A-893A-7D30FED550BE nike 1 andy
20D9F725-6667-4F3A-893A-7D30FED550BE nike 1 andy
答案 0 :(得分:0)
您的where
条件不正确。我想你需要那个:
public IEnumerable<vwListDetails > GetAllListDetailConsumer(string productid)
{
ObjectQuery<vwListDetails> cust = db.vwListDetails ;
IEnumerable<vwListDetails> query = from d in cust
where d.productid == productid
select d;
return query;
}
答案 1 :(得分:-1)
我怀疑你的病情是错的。您的producid将永远不会与GUID匹配。
where d.productid == new Guid(productid)
。 正如你在Sql的例子中所说的那样。你提到的是productid。但是使用LINQ你正在使用GUID。所以纠正谓词。
var urList= db.vwListDetails.Select(e=>e.productid==yourCondition);