0

Lambda を使ってデータを取得したいのですが、

クエリを書く場合、

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

Jason Data からの PK 値。

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() に何を入れる必要があるか知っている人はいますか?

ありがとう!

4

2 に答える 2

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 と一致するレコードが得られます

于 2012-04-24T15:51:26.727 に答える
1

最初は少し後ろ向きに見えますが、チェックしている項目のリストに含まれているものを実行する必要があります。

そのため、contains を実行する PK のリストを作成する必要があります。
例えば:

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

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

于 2012-04-24T15:38:08.643 に答える