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 に答える