【发布时间】:2018-05-27 09:18:31
【问题描述】:
我正在使用 asp.net 网络表单 4.5
我正在尝试将两个表产品和批次通过
var query = _cc.products.Join(_db.lots,
p => p.parentLotIndex,
l => l.idx,
(p, l) => new {P = p, L = l});
int prodCount = query.Count();
编辑:这是多对一的关系。也就是说,可能有数 与单个批次相关的产品。所以查询是要查找多少个产品 在给定的批次中。
但这给了我一个奇怪的错误,比如..
NotSupportedException was unhandled by user code.
The specified LINQ expression contains references to queries that are associated with different contexts.
我不知道这意味着什么。 请有人帮助我吗? 提前致谢。
PS : 顺便说一下,执行 sql 查询 SQL管理工作室给了我正确的答案.. 使用标准 sql 查询.. 所以我想我在 linq 上做错了。
【问题讨论】:
-
你用谷歌搜索了吗?也许它不相关但是:stackoverflow.com/questions/7332920/…
-
您没有可以使用的 Navigation 属性吗?此外,如果它是一对一的关系,那么为什么需要加入?还是实际上是 1 对 0 或 1 的关系?
-
@juharr 好点。我想我不熟悉这些命名,所以无法制造产品,所以我试图找出答案,所以我想这将是 0 对 1 的关系,我正在尝试计算制造的产品
-
如果您希望所有产品都有很多,那么这样的事情可能会起作用(猜测您的导航属性名称)
_db.products.Where(p => p.Lot != null).Select(p => new { P = p, L = p.Lot})。 -
@Nekeniehl 当然我用谷歌搜索了它。 tolist 或 toarray 不再起作用,显示相同的错误。有趣的是,当我放入 toarray 或 tolist 时,异常来自 sql 查询,而不是计数。
标签: c# linq join webforms .net-4.5