2016-03-06 71 views
1

我想建立一個汽車可以有多個Testruns,以及一個可選的「主動testrun」的關係。實體框架代碼優先 - 映射一個表到另一個單一和多重關係?

public class Car 
{ 
    public int ID { get; set; } 

    public virtual TestRun ActiveTestRun { get; set; } 
    public virtual ICollection<TestRun> TestRuns { get; set; } 
} 


public class TestRun 
{ 
    public int ID { get; set; } 
    public double TopSpeed { get; set; } 

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

我一直在試圖使用InverseProperties有或沒有ForeignKey屬性,但沒有運氣。建立這種關係的正確方法是什麼? TIA!

Ps。我想,我想大多都是從本教程的組合沒有得到它的工作:( http://www.entityframeworktutorial.net/code-first/inverseproperty-dataannotations-attribute-in-code-first.aspx

編輯:產生的DB-模式我想是這樣的:

tbl_Cars: ID,ActiveTestRunID [可空]

tbl_TestRuns: ID,TopSpeed中文,CarID

+0

這是否適用於虛擬成員? – Rik

回答

0

這實現了我想要的結果:

public class Car 
{ 
    public int ID { get; set; } 

    public int? ActiveTestRunID { get; set; } 
    public virtual TestRun ActiveTestRun { get; set; } 

    [InverseProperty("Car")] 
    public virtual ICollection<TestRun> TestRuns { get; set; } 
} 


public class TestRun 
{ 
    public int ID { get; set; } 
    public double TopSpeed { get; set; } 

    public int CarID { get; set; } 
    public virtual Car Car { get; set; } 
}