使用多表键的Linq联接有问题吗?
我在linq连接中有一些错误 我的问题是:使用多表键的Linq联接有问题吗?,linq,join,Linq,Join,我在linq连接中有一些错误 我的问题是: from inv in SellServiceInvoice.All() join Ent in Entity.All() on new { CID = inv.EntityID, CType = inv.EntityTypeID } equals new { CID =(long) Ent.EntityID, CType =(long) Ent.EntityTypeID} select new {...} 问题1:尽管
from inv in SellServiceInvoice.All()
join Ent in Entity.All() on new { CID = inv.EntityID, CType = inv.EntityTypeID }
equals new { CID =(long) Ent.EntityID, CType =(long) Ent.EntityTypeID}
select new {...}
问题1:尽管类型已经很长了,为什么我必须添加casting'(long)
问题2:它给了我以下例外:
构造函数“Void.ctor(Int64,Int64)”不受支持您是否尝试过:
from inv in SellServiceInvoice.All()
from Ent in Entity.All()
where inv.EntityID = CID =(long) Ent.EntityID &&
inv.EntityTypeID == (long)Ent.EntityTypeID
select new {...}
对不起,我添加了例外@骑士:你的代码是否可以在不强制转换为
long
的情况下工作?否:(,我不知道为什么!!你确定它确实是long
且不可为空(long?
)?@Albin:噢,谢谢,它是int!!不长,但是prob2呢!!它仍然给我相同的异常!!好的,非常感谢,它现在起作用了,但是我需要知道这个异常的原因和原因!你能帮忙吗?!@The Knight:不幸的是,我不知道你的异常。上面的例子只是你的查询,而不是我移动的join
将条件设置为其中
块。