我怎么能说EF6不插入NULL值

本文关键字:插入 NULL EF6 怎么能 | 更新日期: 2023-09-27 18:02:41

我在迁移中设置了deafaultValue

AlterColumn("Users", "NotNullValue", c => c.String(nullable: false, defaultValue: "Work it!"));

然后我尝试添加新对象,SqlProfiler显示我查询

INSERT [dbo].[WowTable]([NotNullValue],[OnceMoreValue]) VALUES (NULL, 'val')

that throw "cannot insert value null into column"

是任何方式停止插入和更新属性时,它为空?

乌利希期刊指南:域类:

public class User 
{
    public string NotNullValue { get; set; }
    public int Id { get; set; }
    public string OnceMoreValue { get; set; }        
}
更新方法:

  public Task AddOrUpdate<TEntity>(TEntity entity) where TEntity : class, IEntity
    {
        _dbContext.Set<TEntity>().AddOrUpdate(x => x.Id, entity);
        return _dbContext.SaveChangesAsync();
    }
调用:

AddOrUpdate(new User{OnceMoreValue = "val"});

我怎么能说EF6不插入NULL值

您可以使用NotNullValue属性的[Required]属性来验证模型:

public class User 
{
[Required]
public string NotNullValue { get; set; }
public int Id { get; set; }
public string OnceMoreValue { get; set; }        
}

裁判:https://msdn.microsoft.com/en-in/data/gg193959.aspx

或者从我在迁移脚本中看到的,您有这个属性的默认值("Work It")。所以在你的User类构造函数中,你可以设置NotNullvalue = "Work It"这样在你提到的情况下这个默认值将被保存:

AddOrUpdate(new User{OnceMoreValue = "val"});