我正在尝试从数据库检索存储在员工表中的
在
如果我执行此查询,一切正常:
我该如何解决我第一个查询,以获取具有特殊技能的EmployeeDTO对象?
谢谢。
EmployeeDTO
列表。每个员工可以有一个或多个专业。专业存储在OrganizationSpecialtyType
中。Employee
和OrganizationSpecialtyType
通过EmployeeSpecialty
表进行"多对多"关联。
我使用以下查询,但遇到了标题中的异常:
var q = _context.Employee.Where(p => employeeEMIIDs.Contains(p.EmployeeID))
.Select(p => new EmployeeDTO
{
EmployeeID = p.EmployeeID,
GenderTypeID = p.GenderTypeID,
FirstName = p.FirstName,
LastName = p.LastName,
Name = p.Name,
MiddleName = p.MiddleName,
DOB = p.DOB,
Suffix = p.Suffix,
Title = p.Title,
Specialty = p.EmployeeSpecialty
.ToDictionary(d => d.OrganizationSpecialtyType.SpecialtyTypeID, d => d.OrganizationSpecialtyType.Name)
}
);
在
EmployeeDTO
类中,属性Specialty
的类型是public Dictionary<int, string>
。如果我执行此查询,一切正常:
var spec = _context.Employee.Where(p => p.EmployeeID == -9070).FirstOrDefault()
.EmployeeSpecialty.ToDictionary(d =>
d.OrganizationSpecialtyType.SpecialtyTypeID,
d => d.OrganizationSpecialtyType.Name);
我该如何解决我第一个查询,以获取具有特殊技能的EmployeeDTO对象?
谢谢。