【发布时间】:2017-01-17 11:07:11
【问题描述】:
我正在使用实体框架。我有以下查询,其中我使用两个表 Application 和 Employee 通过应用程序表中的外键 EmployeeID 连接来获取数据。这些表具有 1-1 关系。 有没有办法简化以下代码并摆脱 DTO Employee1 和自动生成的Employee类一样
public List<Employee1> GetApplicant(int ApplicationID)
{
var context = new FPSDB_newEntities();
var data = (from a in context.Applications
join e in context.Employees on a.EmployeeID equals e.EmployeeID
where
(
a.ApplicationID == ApplicationID
)
select new Employee1
{
EmployeeID = e.EmployeeID,
SecondEmail = e.SecondEmail,
EmailID = e.EmailID,
Title = e.Title,
Name = e.Name,
Rank = e.Rank,
POBox = e.POBox,
Phone = e.Phone,
JoinDate = e.JoinDate,
Status = e.Status,
DepartmentID = e.DepartmentID.Value,
NameString = e.NameString,
Department = e.Department,
ParentDept = e.ParentDept,
DepartmentAr = e.DepartmentAr,
NameAr = e.NameAr,
NameStringAr = e.NameStringAr,
TitleAr = e.TitleAr
}).ToList();
return data;
}
【问题讨论】:
-
如果这两个类确实相同,那么如果您将返回类型更改为
public List<Employee>并相应地更改您的选择语句,那么它应该可以工作。假设您可以更改应用的其余部分以接受不同的类型。 -
不,它不起作用并给出错误stackoverflow.com/questions/41676957/…
-
我的建议与公认的答案几乎相同,只是我没有把它拼出来。所以我认为这个答案对你有用。您刚刚将我链接到的问题较旧,所以我很困惑这有什么关系或问题是什么。
标签: asp.net entity-framework dto