C# 使用linq和实体框架的初始值设定项成员声明符无效
我不熟悉Linq使用实体框架实体。我有模型中创建的每个表的所有实体类。我需要从多个表中检索数据。在这里,我试图从Person、Employee和Details表中获取信息。我的查询中有多个联接。我不想重写新类中的所有属性。相反,我用C# 使用linq和实体框架的初始值设定项成员声明符无效,c#,linq,entity-framework,entity-framework-4,C#,Linq,Entity Framework,Entity Framework 4,我不熟悉Linq使用实体框架实体。我有模型中创建的每个表的所有实体类。我需要从多个表中检索数据。在这里,我试图从Person、Employee和Details表中获取信息。我的查询中有多个联接。我不想重写新类中的所有属性。相反,我用 namespace DAL { public class Details { public List<Person> provider { get; set; } public List<Employ
namespace DAL
{
public class Details
{
public List<Person> provider { get; set; }
public List<Employee> location { get; set; }
public List<Details> member { get; set; }
}
}
DAL名称空间
{
公开课详情
{
公共列表提供程序{get;set;}
公共列表位置{get;set;}
公共列表成员{get;set;}
}
}
现在我尝试在DAL类的自定义方法中使用这些属性。但我无法获得这些表中定义的属性
public List<Details> GetDetails(string dKey)
{
try
{
using (var myDB = new Test_2013SQLEntities())
{
return (from H in myDB.Person
join L in myDB.Details on H.PID equals L.DID
join P in myDB.Employee on H.PersonID equals P.EmployeeID
where L.DID == dKey
select new Details()
{
????? = L.DID,
????? = H.Name,
????? = P.PName
public List GetDetails(字符串dKey)
{
尝试
{
使用(var myDB=newtest_2013SQLEntities())
{
返回(myDB.Person中的H)
在myDB中加入L。关于H.PID的详细信息等于L.DID
在myDB中加入P。H.PersonID上的Employee等于P.EmployeeID
其中L.DID==dKey
选择新的详细信息()
{
我做过,
????????=H.名称,
????????=P.PName
我需要从此处的详细信息表中定义DID属性。当我尝试将DID放在此处时,我遇到一个错误“无效的初始值设定项成员声明符”“如何在GetDetails方法中访问实体详细信息、人员、员工中的属性?”
请帮助!
DID
是一个单独的属性,如果您将其初始化为:newdetails{provider=L.DID,location=H.Name,member=p.PName}
,它将失败,因为提供程序
是一个列表,您正在尝试分配单个项目。您是否可以发布任何示例数据或人员类型、员工和数据库。详细信息。根据您的模型定义,您可能不需要加入表,而可以使用Include加载导航属性,因此更新您的问题和Include定义你的模型(个人、员工和细节)。这个问题应该可以帮助你解决你的问题。