【发布时间】:2016-05-06 18:27:25
【问题描述】:
我想使用 linq 加入 2 个表并避免使用匿名对象。
到目前为止,我使用元组。
var products = from tm in db.TargetMarkets
join tp in db.Products on tm.product_id equals tp.id
where tm.country == 2
select Tuple.Create<TargetMarket, Product>(tm, tp);
但是,当我 foreach
foreach (var p in products)
{
var a = p.Item1.id;
}
抛出异常
LINQ to Entities 无法识别方法 'System.Tuple`2
问题:
- 有没有办法让我的代码保持强类型化
- 元组有什么问题(可选)
【问题讨论】:
-
我怀疑错误是因为使用了连接条件的类型,你能检查两个 Id 的类型相同吗?
-
您注意到
foreach中的错误,因为第一个语句是延迟执行。 -
它们是相同的类型(整数)。查询语句不抛出错误。 foreach 执行抛出错误。
标签: c# entity-framework linq linq-to-entities strong-typing