0

我想使用 select * from dbo.vwListDetails where productid ='20D9F725-6667-4F3A-893A-7D30FED550BE' 翻译 linq 语句

我已经编写了 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
4

2 回答 2

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;
}
于 2013-03-01T07:00:09.537 回答
-1

我怀疑你的情况是错误的。您的产品 ID 永远不会匹配 GUID。

  1. 你在谓词上做错了。 where d.productid == new Guid(productid).
  2. 正如您在 Sql 示例中所说的那样。你提到的是productid。但是使用 LINQ 你正在使用 GUID。所以更正谓词。

    var urList= db.vwListDetails.Select(e=>e.productid==yourCondition);

于 2013-03-01T06:57:40.087 回答