2012-05-16 52 views
0

(Running EntityFramework 4.1) 我有一個ASP .NET MVC 3項目,它有一個帶有兩個數據庫表的數據庫。使用實體框架鏈接MVC 3項目中的兩個表?

表達數據庫表的模型:

public class MyDetails 
{ 
    public int DetailsID {get;set;} 
    public string Description {get;set;} 
    public int 
    public CarID {get;set;} 
    public virtual Cars Cars {get;set;} 

    public PreviousCarID {get;set;} 

} 

public class Cars 
{ 
    public int CarsID {get;set;} 
    public string CarsName {get;set;} 


} 

實體框架將很好地涉及了MyDetails.CarsID和Cars.CarsID,這樣我可以拉CarsName。 問題是我不知道如何將PreviousCarID與Cars表關聯。

我已經試過(在實體框架錯誤結果):

public PreviousCarID{get;set;} 
[ForeignKey("PreviousCarID")] 
public virtual Cars Cars2 {get;set;} 
+0

'MyDetails'類被搞亂了。你能更新嗎? – LukeP

回答

0

我會重新命名汽車到汽車,並改變CarsID到CarID。然後在您的DbContext中將DbSet作爲類型Car,但是名爲Cars。

二,解決您的特定問題(使用上述我的建議)

public class MyDetails 
{ 
    public int DetailsID {get;set;} 
    public string Description {get;set;} 
    public int CarID {get;set;} 
    public int PreviousCarID {get;set;} 

    public virtual Car Car {get;set;} 
    public virtual Car PreviousCar {get;set;} 
} 

public class Car 
{ 
    public int CarID {get;set;} 
    public string CarName {get;set;} 
} 

你不說您是否使用代碼首先,模型優先,或數據庫第一。我將假設Database First。如果是這種情況,那麼您需要確保CarID和PreviousCarID都是Car表的外鍵。