我想使用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()?
谢谢!
答案 0 :(得分:1)
一开始似乎是落后的,但你需要在你正在检查的项目列表上做包含。
所以你需要创建一个PK列表来进行包含。
例如:
var webOrderLns = webOrderLnRepository.WebOrderLns.Where(e => items.Select(x => x.weborderlnPk).Contains(e.PK)).ToList();
items.Select(x => x.weborderlnPk)
应该创建PK的列表,以便您使用。
答案 1 :(得分: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匹配的记录