19
我是EF新手,嘗試使用代碼優先方法獲得多對多單向關係。例如,如果我有以下兩個類(不是我的真實模型),它們之間存在N * N關係,但沒有來自「客戶」一側的導航屬性。使用Code First Entity Framework進行單向多對多實現
public class User {
public int UserId { get; set; }
public string Email { get; set; }
public ICollection TaggedCustomers { get; set; }
}
public class Customer {
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
映射代碼看起來像......
modelBuilder.Entity()
.HasMany(r => r.TaggedCustomers)
.WithMany(c => c.ANavgiationPropertyWhichIDontWant)
.Map(m =>
{
m.MapLeftKey("UserId");
m.MapRightKey("CustomerId");
m.ToTable("BridgeTableForCustomerAndUser");
});
這句法強迫我有 「WithMany」 爲 「客戶」 實體。 以下url表示,「按照慣例,Code First始終將單向關係解釋爲一對多關係。」
是否可以重寫它,還是應該使用其他方法?
非常感謝,有什麼簡單的解決方案:
而且隨着映射。爲了挽救我的面子,我會責怪它缺乏文件,而不是我自己的無知。 –
是否有可能通過屬性來做到這一點? – TDaver
@TDaver:不,只有在兩端都具有導航屬性並且不期望控制聯結表中的名稱和列時,才能使用屬性。 –