使用多表键的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:尽管

我在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:尽管类型已经很长了,为什么我必须添加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
将条件设置为
其中
块。