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

起初看起来有点落后,但您需要在您正在检查的项目列表中执行包含。

因此,您需要创建一个 PK 列表来执行包含。
例如:

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

items.Select(x => x.weborderlnPk)应该创建 PK 列表供您使用。

于 2012-04-24T15:38:08.643 回答
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 回答