实体框架设置导航属性

时间:2013-10-04 03:56:42

标签: c# sql entity-framework navigation-properties

我们有没有正确设置外键的数据库。我们现在使用此数据库生成edmx。我们想要的是设置导航属性,以便我们可以从其他表中获取相应的详细信息。以下是我们正在寻找的具体内容。

让我们说有一个表员工和部门。现在在数据库中,这些表之间没有关系,但Employee的DepartmentId取自Department表。

当我们获取Employee时,我们只获得DepartmentID,但我们也希望将Department作为属性,以便我们可以获得类似于" DepartMentName"," Location"它存储在Department表中。

我们尝试在EDMX文件中添加Navigation属性但它失败并继续给出与关系相关的错误。

请帮忙

1 个答案:

答案 0 :(得分:4)

你可以选择这样的东西。为Employee和Department创建一个包装类。

public class EmpDept
{
public Employee Employee {get; set;}
public Department Department {get; set;}
}

public IEnumberable<EmpDept> GetEmployeesWithDeptpartment()
{        
    var result = from e in context.Employee
                 where e.Id == somevalue
                 select new EmpDept()
                        {
                            Employee = e,
                            Department = context.Department.Where(d => d.Id == e.DepartmentId)
                        };
    return result.ToList();
}

这意味着你有一个额外的类,但它编码快速简单,易于扩展,可重用和类型安全。

希望这有帮助