真實世界的場景一對一或零關係是契約,抵押貸款等,所有這些都被稱爲在縣登記和記錄的辦公室「樂器」。EF5使用不同的密鑰
我在這種情況下有以下實體。
public class Request
{
[Key]
public int RequestId { get; set; }
public virtual RequestInstrument RequestInstrument { get; set; }
}
public class RequestInstrument
{
[Key]
public int RequestId { get; set; }
//This column is also unique and it is enforced in the database
//but it is not the primary key
public int InstrumentId { get; set; }
public virtual Request Request { get; set; }
public virtual Instrument Instrument { get; set; }
}
public class Instrument
{
[Key]
public int InstrumentId { get; set; }
public virtual RequestInstrument RequestInstrument { get; set; }
}
請求是爲儀器。有些樂器在沒有請求的情況下錄製。並非所有請求都會變成記錄的樂器。這就是請求和工具具有獨立主鍵的原因。當請求變成記錄的樂器時,對相關樂器只有一個請求,反之亦然。
盡我可以告訴,EF只支持1〜1..0關係,如果兩個表具有相同的密鑰。如果有這樣的事情,我想這實際上是1..0到1..0的關係。
有沒有辦法拉斷採用獨立的主鍵上面的模型?
所以,如果請求ID是不是主鍵,然後做RequestInstruments有這樣說,請求ID和InstrumentId使其獨特組合鍵? – Gjohn 2014-09-10 20:53:43
你說,「請求是爲了樂器。」如果沒有樂器,請求可以存在嗎?另外,你提到一個「記錄樂器」。那是什麼? – 2014-09-10 20:57:24
在RequestInstruments中,RequestId本身是唯一的。 InstrumentId本身也是獨一無二的。它們本身可以是主鍵。順便說一句,我有這個中間交叉鏈接表的唯一原因是因爲SQL Server不允許在一個唯一的索引中多個空值。 – dalchri 2014-09-11 12:39:09