2013-10-04 240 views
0

我們有沒有設置適當的外鍵的數據庫。我們現在使用這個數據庫生成edmx。我們想要的是設置導航屬性,以便我們可以從其他表中獲取相應的細節。這裏是我們正在尋找的例子。實體框架集導航屬性

可以說有一張表員工和部門。現在在數據庫中這些表之間沒有關係,但Employee具有從Department表中取得的DepartmentId。

當我們獲取員工時,我們只能得到DepartmentID,但我們也希望將Department作爲屬性一起使用,以便我們可以獲取存儲在Department表中的「DepartMentName」,「Location」等信息。

我們嘗試在EDMX文件中添加導航屬性,但它失敗並一直給出與關係相關的錯誤。

請幫忙

+0

你應該能夠在edmx中添加一個關聯。請詳細說明你做了什麼以及例外情況。 –

+0

可能重複的[實體框架 - 手動添加導航屬性](http://stackoverflow.com/questions/4465855/entity-framework-add-navigation-property-manually) – slawek

回答

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(); 
} 

這意味着你有一個額外的類,但它的代碼快速簡單,易於擴展,可重用和類型安全。

希望這有助於

+0

偉大的答案@Manoj。它爲我工作。 –