Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有一种方法可以使属性成为必需的,但只用于前端而不用于数据库?_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 是否有一种方法可以使属性成为必需的,但只用于前端而不用于数据库?

C# 是否有一种方法可以使属性成为必需的,但只用于前端而不用于数据库?,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,假设我有一处房产: class Test { [Required] public string Toot { get; set; } } 有了Required,我的数据库中就不允许null了。 我实际上不希望那个限制,但我不希望从现在起它永远是空的 有没有办法只让前端输入需要它 我意识到我可以做到这一点: class Test { [Required] public string Toot { get; set; } [Required

假设我有一处房产:

class Test
{
    [Required]
    public string Toot { get; set; }
}
有了Required,我的数据库中就不允许null了。 我实际上不希望那个限制,但我不希望从现在起它永远是空的

有没有办法只让前端输入需要它

我意识到我可以做到这一点:

class Test
{
    [Required]
    public string Toot { get; set; }        

    [Required]
    [Display( Name = "Toot" )]
    public string TootForView 
    {
        get
        {
            return this.Toot ;
        }
        set
        {
            if(this.Toot != value)
            {
                this.Toot = value;
            }
        }
    }
}

尝试告诉EF允许列为空:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
        modelBuilder.Entity<SomeObject>().Property(m => m.somefield).IsOptional();            
        base.OnModelCreating(modelBuilder);
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().Property(m=>m.somefield.isoOptional();
基于模型创建(modelBuilder);
}

这是从
DbContext

继承的对象中应该包含的代码。只是好奇:为什么需要不保存的必需属性?这是旧数据的问题。。。我们希望将来需要Toots,但对于旧数据。。我们不在乎。你有一个视图模型吗?或者你直接在视图中使用EF实体吗?直接在视图中。我一直担心重新映射会导致太多的工作,也会减慢进程。我从那本专业的ASP net MVC书中了解到了这一点。你是否考虑过从一开始就解决它?在将这些现有模型附加到新模型时,有没有一种方法可以做到这一点。例如,我有一个
TooToo
类,需要将其与
测试
类关联。。。但是当运行
savechanges
时,它会重新验证
Toot
属性,并且不允许我附加并保存新的
TooToo