0
我有一個名爲User的實體。用戶應在多語言環境中使用 所以用戶看起來像EF 4.2中的級聯刪除問題(代碼優先)
class User{
virtual ICollection<TextEntry> Name {get; set;}
virtual ICollection<TextEntry> Info {get; set;}
...
}
class TextEntry
{
int id {get; set;}
string Text {get; set;}
string Culture {get;set;}
}
我也有用戶的規則
modelBuilder.Entity<User>()
.HasMany(q => q.Name)
.WithOptional()
.WillCascadeOnDelete();
modelBuilder.Entity<User>()
.HasMany(q => q.Info)
.WithOptional()
.WillCascadeOnDelete();
本細則EF無法創建模型 Esception消息「引進國外KEY約束表'TextEntry'上的'User_Info'可能會導致循環或多個級聯路徑,指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY約束。\ r \ n不能創建約束。
沒有這個規則,我在嘗試刪除用戶時收到一個異常,因爲引用約束。
如何解決這個問題而不會爲User.Info數據創建額外的實體?
但是如果我將有3個或更多應該是多語言的領域呢?我不認爲爲新領域創建新實例是一個好主意。因爲它們都具有相同的功能,但名稱不同。 – Ph0en1x 2012-01-09 15:46:32
@ Ph0en1x是的。但是,如果不在Entity Framework之外用一些自定義部分(視圖[可能有助於模擬一個表格],觸發器[可能有助於實際上級聯]等等)創建數據庫,則不會有太多進展。 – 2012-01-09 15:49:08
我真的希望這個問題有可能通過EF規則解決。 – Ph0en1x 2012-01-09 15:53:13