在Entity framework Database First中更改代码后更新数据库

时间:2017-04-26 19:19:33

标签: c# sql-server entity-framework ef-database-first

我有一个名为反馈的类,通过数据库第一种方法生成

public partial class Feedback
{
    public Nullable<byte> OverallExperienceFb { get; set; }
    public Nullable<byte> FunFb { get; set; }
    public Nullable<byte> FoodFb { get; set; }
    public Nullable<byte> TravelFb { get; set; }
    public Nullable<byte> PlanningFb { get; set; }
    public Nullable<byte> MusicFb { get; set; }
    public Nullable<byte> PlaceFb { get; set; }
    public Nullable<byte> WeatherFb { get; set; }
    public Nullable<int> Paid { get; set; }
    public int ID{get; set;}
}

我后来在overallFb上添加了范围0-5的约束,如下所示: -

public partial class TravellerTripStatus
{
    [Range(0,5)]
    public Nullable<byte> OverallExperienceFb { get; set; }
}

此更改反映在GUI上,使得编辑表单不允许输入超出范围的值,但如何使此更改反映到数据库中(这样一个检查约束自动添加到表定义的overallFB字段中?

当我尝试从模型生成数据库时,不会强制执行此类约束。

1 个答案:

答案 0 :(得分:0)

使用数据注释或流体API,目前无法向表添加约束。但解决方法是在Seed方法中的Configuration.cs文件中发出SQL命令:

db.Database.ExecuteSqlCommand("ALTER TABLE TravellerTripStatus ADD CONSTRAINT CK_TravellerTripStatus_OverallExperienceFb CHECK (OverallExperienceFb BETWEEN 0 AND 5)");