2012-04-24 3 views
0

Я хочу, чтобы получить данные с помощью лямбда,Лямбда, как использовать Содержит?

Если писать запрос на,

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

Значения PK от Jason данных.

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(); //// 

Кто-нибудь знает, что мне нужно положить в Содержит()?

Спасибо!

ответ

1

Предположим, у вас есть список идентификаторов:

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 соответствует из идентификаторов списка

+0

Он работает, спасибо! –

1

Сначала кажется, что нужно сначала вернуться, но вам нужно сделать все, что содержится в списке предметов, которые вы проверяете.

Итак, вам нужно создать список PK для включения.
Например:

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

items.Select(x => x.weborderlnPk) должен создать список PK для вас сделать содержит с.

Смежные вопросы