我如何修改以下代码:
var result = from p in Cache.Model.Products
from f in p.Flavours
where f.FlavourID == "012541-5-5-5-651"
select p;
为f.FlavourID
提供一系列ID,假设只有一个值,如上例所示?
鉴于以下ERD模型:
产品* => ProdCombinations < = * Flavors
ProdCombinations是一个交汇点/链接表,只有一个复合键。
答案 0 :(得分:2)
我的头脑中
string [] ids = new[]{"012541-5-5-5-651", "012541-5-5-5-652", "012541-5-5-5-653"};
var result = from p in Cache.Model.Products
from f in p.Flavours
where ids.Contains(f.FlavourID)
select p;
有一些限制,但是之前的一系列ID对我有用。我实际上只尝试过SQL Server后端,我的ID是整数。
据我了解,Linq需要将您的查询转换为SQL,有时只能这样做。例如,IEnumerable<SomeClass>
不可能产生运行时错误,但可以使用简单类型的集合。