2012-06-19 115 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