Linq连接语句
我试图从实体模型中的多个表中进行选择。但有两个专栏我想选择,它只是不工作。我的LINQ声明是:Linq连接语句,linq,Linq,我试图从实体模型中的多个表中进行选择。但有两个专栏我想选择,它只是不工作。我的LINQ声明是: var searchResult = from i in _imEntities.Issues join dept in _imEntities.Departments on i.Issued_to_dept equals dept.Dept_ID where i.State == 1
var searchResult = from i in _imEntities.Issues
join dept in _imEntities.Departments
on i.Issued_to_dept equals dept.Dept_ID
where i.State == 1
select new {
i.ID_No,
i.Issue_Date,
Raised_By = dept.Dept_Name
.Where(i.Raised_by_Dept == dept.Dept_ID),
Issued_To = dept.Dept_Name
.Where(i.Issued_to_dept == dept.Dept_ID),
Details = i.Details
};
列名都是正确的,但我就是无法将部门名称放入“提出者”和“发出者”字段中。是否有其他方法来执行此操作?不清楚您想要实现什么。但您肯定试图对单个名称字符串应用where筛选器(谓词语法也不正确)。下面是一个查询,它有条件地返回由提出的
中的部门名称
,以及向
属性发出的部门名称:
var query = from i in _imEntities.Issues
join dept in _imEntities.Departments
on i.Issued_to_dept equals dept.Dept_ID
where i.State == 1
select new {
i.ID_No,
i.Issue_Date,
Raised_By = (i.Raised_by_Dept == dept.Dept_ID) ? dept.Dept_Name : null,
Issued_To = (i.Issued_to_dept == dept.Dept_ID) ? dept.Dept_Name : null,
Details = i.Details
};
试试这个:
var query = from i in _imEntities.Issues
join dept_r in _imEntities.Departments
on i.Issued_to_dept equals dept_r.Dept_ID
join dept_i in _imEntities.Departments
on i.Issued_to_dept equals dept_i.Dept_ID
where i.State == 1
select new {
i.ID_No,
i.Issue_Date,
Raised_By = dept_r.Dept_Name,
Issued_To = dept_i.Dept_Name,
Details = i.Details
};
当您说我就是无法将部门名称输入到“提出人”和“发出人”字段中时,
,您的意思是接收到异常、错误还是为空?最初,问题表将部门ID存储在“提出人”和“发出人”下。其中,“提出人”是指提出问题并向其发布的部门,是指“向其发布问题”的部门。我真的需要一个加入部门和问题表的查询,可以在网格中显示部门名称,而不是部门id。当我说“我只是无法将部门名称放入“提出者”和“发出者”字段时,我的意思是,我无法使用linq查询来显示存储在相应字段下的每个部门id的相应部门名称……我意识到您用linq
标记了您的问题,但是,如果您想要一个连接部门和问题表的概念表,那么视图可能比linq更适合您。所引发的错误将显示为null。i、 “由部门提出”字段是否为整数?(nullable int),这可能是原因吗?@user2030579是的,我正在选择null
如果由当前问题的部门提出的不等于加入部门的部门ID
。非常感谢!!这正是我想要的。只是dept\u r设置为i.Issued\u to,但我将其更改为i.Raised\u By(小东西,因为我理解这个查询)。你是天才。