2012-04-24 8 views
0

私はジェイソン・データからのPK値は、Lambda、Containsの使い方は?

SELECT * FROM weborderln WHERE PK in ('60fa6105-42c9-aa4b-82a2-1d84f803a540','adsfasfwer-we123-1231b-82a2-12312312sd5125'); 

クエリを書く場合はラムダ、

を使用してデータを取得します。

string itemsInfo = "[{\"itemNo\":\"SKR315FLWW\",\"qty\":1,\"weborderlnPk\":\"60fa6105-42c9-aa4b-82a2-1d84f803a540\"},{\"itemNo\":\"OKHIY211\",\"qty\":1,\"weborderlnPk\":\"adsfasfwer-we123-1231b-82a2-12312312sd5125\"}]"; 

JavaScriptSerializer js = new JavaScriptSerializer(); 
IList<PartialInvoiceParamsModel> items = js.Deserialize<IList<PartialInvoiceParamsModel>>(itemsInfo); 

//Response.Write(items[0].itemNo); // SKR315FLWW 

EFWebOrderLnRepository webOrderLnRepository = new EFWebOrderLnRepository(); 
var webOrderLns = webOrderLnRepository.WebOrderLns.Where(e => e.PK.Contains(?????)).ToList(); //// 

私はContains()に入れる必要があることを知っていますか?

ありがとうございます!

答えて

1

あなたはIDのリストがあるとします。

List<string> listIDs = new List<string> { "60fa6105-42c9-aa4b-82a2-1d84f803a540", 
              "60fa6105-42c9-aa4b-82a2-1d84f803a541", 
              "60fa6105-42c9-aa4b-82a2-1d84f803a542" 
             }; 
var webOrderLns = from foo in webOrderLnRepository.WebOrderLns 
        where listIDs.Contains(foo.PK) 
        select foo; 

これはありがとう、それが動作するあなたのIDがリストID

+0

から一致するレコードを与えます! –

1

最初は少し先に見えますが、チェックしているアイテムのリストにあるcontainsを実行する必要があります。

このようにするには、containsを実行するPKのリストを作成する必要があります。たとえば
:あなたが含まれているを行うにため

var webOrderLns = webOrderLnRepository.WebOrderLns.Where(e => items.Select(x => x.weborderlnPk).Contains(e.PK)).ToList(); 

items.Select(x => x.weborderlnPk)はPKのリストを作成する必要があります。

関連する問題