2012-06-19 156 views
0

我有表用戶和角色。 在Users表中我有RoleId列的默認值。 但我不如何,我可以讓它在EF4工作,例如,如果我設置角色ID屬性作爲DatabaseGeneratedOption.Computed實體框架外鍵默認值

_repository.Save(new User() 
    { 
     Login = "asdasd", 
     Name = "sadqwqwd", 
     Password = "wqdwqd" 
    }); 

新用戶將使用默認值插入,但如果我想在代碼

設置角色ID
_repository.Save(new User() 
    { 
     Login = "qqasdasd", 
     Name = "qqsadqwqwd", 
     Password = "qqwqdwqd", 
     RoleId = 2 
    }); 

它會忽略我的RoleId值並再次設置默認值。 如果我刪除DatabaseGeneratedOption.Computed選項,我不能插入用戶對象wihtout RoleId值。 我該如何解決這個問題?提前致謝。

回答

0

帶有DatabaseGeneratedOption.Computed選項的屬性在插入/更新操作中將被EF忽略,並且只能在數據庫端設置。

從RoleId屬性中刪除DatabaseGeneratedOption.Computed選項,並在User類的構造函數中設置默認值。

+0

我不想在模型中設置默認值,因爲默認值是查詢,並且在代碼中,我將在類構造函數中獲取上下文/存儲庫以獲取此值 – Boo