左外连接LINQ到实体
我拥有以下实体: 客户端左外连接LINQ到实体,linq,entity-framework-4,asp.net-4.0,Linq,Entity Framework 4,Asp.net 4.0,我拥有以下实体: 客户端 --客户ID --客户名称 承包商 --合同工 --合同名称 首选承包商 --PreferredContractorID --客户ID --合同工 所以我有一份客户和承包商的名单。与其他承包商相比,客户更喜欢与某些承包商合作。我想构建一个LINQ-to实体查询,该查询使用一个布尔字段提取所有承包商,该字段指示承包商是否优先 public IQueryable<PreferredContractor> GetPreferredContractors(int
--客户ID
--客户名称 承包商
--合同工
--合同名称 首选承包商
--PreferredContractorID
--客户ID
--合同工
所以我有一份客户和承包商的名单。与其他承包商相比,客户更喜欢与某些承包商合作。我想构建一个LINQ-to实体查询,该查询使用一个布尔字段提取所有承包商,该字段指示承包商是否优先
public IQueryable<PreferredContractor> GetPreferredContractors(int clientID)
{
var preferredContractors = from c in db.Contractors
from pc in db.PreferredContractors.DefaultIfEmpty()
select new PreferredContractor
{
ContractorID = c.ContractorID,
ContractorName = c.ContractorName,
IsPreferred = // This is where I need help
};
return preferredContractors;
}
public IQueryable GetPreferredContractors(int-clientID)
{
var preferredContractors=来自数据库Contractors中的c
从db.PreferredContractors.DefaultIfEmpty()中的pc
选择新的首选承包商
{
ContractorID=c.ContractorID,
ContractorName=c.ContractorName,
IsPreferred=//这就是我需要帮助的地方
};
返回优先承包商;
}
我如何确定是否首选承包商?感谢您的及时回复。但是我应该在哪里使用clientID呢?我需要显示选定客户的首选承包商。感谢您的及时回复。但是我应该在哪里使用clientID呢?我需要显示选定客户的首选承包商。
var preferredContractors =
from c in db.Contractors
join pc in db.PreferredContractors.Where(pc2 => pc2.ClientId == clientId) on c.ContractorId equals pc.ContractorId into j
from pc in j.DefaultIfEmpty()
select new PreferredContractor
{
ContractorID = c.ContractorID,
ContractorName = c.ContractorName,
IsPreferred = pc != null
};