C# 是否可以添加多个';在';Linq的in-1连接语句
我不知道在LINQ BAC中的一个join语句中是否可能有一个嵌套的或2个或更多的C# 是否可以添加多个';在';Linq的in-1连接语句,c#,mysql,sql,linq,asp.net-mvc-3,C#,Mysql,Sql,Linq,Asp.net Mvc 3,我不知道在LINQ BAC中的一个join语句中是否可能有一个嵌套的或2个或更多的,因为我必须在不影响数据数量的情况下联接一个表 因为如果我将它添加到中,其中的数据数量会减少,并且它充当过滤器 到目前为止,我尝试添加&&子句,但它不起作用 var Pos = (from a in db.Position join b in db.Position_Location on a.ID equals b.PositionId
,因为我必须在不影响数据数量的情况下联接一个表
因为如果我将它添加到中,其中
的数据数量会减少,并且它充当过滤器
到目前为止,我尝试添加&&
子句,但它不起作用
var Pos = (from a in db.Position
join b in db.Position_Location
on a.ID equals b.PositionId
join c in db.Customer
on a.CustomerID equals c.ID
join d in db.Customer_Location
on b.LocationId equals d.ID
join f in db.Worker
on userIdNew equals f.userId
join e in db.Worker_Customer_Apply_Shift <----Planning to add new validation here
on a.ID equals e.Client_Customer_PositionID into trial
from newtrial in trial.DefaultIfEmpty()
where
b.LogicalDelete == false
&& a.LogicalDelete == false
&& c.LogicalDelete == false
&& d.LogicalDelete == false
select new
{
a.ID,
Client_CustomerID = c.ID,
LogicalDelete =(newtrial == null ? true : newtrial.LogicalDelete),
}).Distinct().ToList();
var Pos=(从数据库位置的a开始
在db.Position\u位置加入b
a.ID等于b.ID
在db.Customer中加入c
在a.CustomerID上等于c.ID
在db.Customer\u位置加入d
在b.LocationId上等于d.ID
在db.Worker中加入f
关于userIdNew等于f.userId
在db.Worker\u Customer\u Apply\u Shift中加入e您可以使用匿名类型,并在加入条件中使用您想要的字段:
on new { a.One, a.Two } equals new { b.One, b.Two }
如果两个表中的列没有相同的名称,则需要为匿名类型的属性提供名称:
on new { Col1 = a.One, Col2 = a.Two } equals new { Col1 = b.Three, Col2 = b.Four }
sir的可能重复项我可以在new{a.ID,b.ID}上使用,等于new{e.ID,e.LocationID}
?@EnriqueGil值得怀疑。您至少必须像我的第二个示例中那样命名属性。尝试一下,看看会发生什么。先生,我非常感谢您的回答,它很有效,它帮助我继续我的两天问题,向上投票和选择答案是不够的