【问题标题】:Entity Framework foreign key default value实体框架外键默认值
【发布时间】:2012-06-21 02:18:44
【问题描述】:

我有表用户和角色。 在用户表中,我有 RoleId 列的默认值。 但我不知道如何让它在 EF4 中工作,例如,如果我将 RoleId 属性设置为DatabaseGeneratedOption.Computed

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

新用户将插入默认值,但如果我想在代码中设置 RoleId

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

它将忽略我的 RoleId 值并再次设置默认值。 如果我删除 DatabaseGeneratedOption.Computed 选项,我无法插入没有 RoleId 值的用户对象。 我该如何解决这个问题?提前致谢。

【问题讨论】:

    标签: sql-server entity-framework default-value


    【解决方案1】:

    带有 DatabaseGeneratedOption.Computed 选项的属性将被 EF 在插入/更新操作中忽略,并且只能在数据库端设置。

    从 RoleId 属性中删除 DatabaseGeneratedOption.Computed 选项,并在 User 类的构造函数中设置默认值。

    【讨论】:

    • 我没有兴趣在模型中设置默认值,因为默认值是查询,在代码中我应该在类构造函数中获取上下文/存储库来获取这个值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多