Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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#_Sql Server_Entity Framework_Ef Database First - Fatal编程技术网

C# 首先在实体框架数据库中更改代码后更新数据库

C# 首先在实体框架数据库中更改代码后更新数据库,c#,sql-server,entity-framework,ef-database-first,C#,Sql Server,Entity Framework,Ef Database First,我有一个名为feedback的类,它是通过数据库优先方法生成的 public partial class Feedback { public Nullable<byte> OverallExperienceFb { get; set; } public Nullable<byte> FunFb { get; set; } public Nullable<byte> FoodFb { get; set; } public Null

我有一个名为feedback的类,它是通过数据库优先方法生成的

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;}
}
此更改反映在GUI上,因此编辑表单不允许输入超出范围的值,但如何使此更改反映到数据库中(以便自动将检查约束添加到表定义的
整体fb
字段)


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

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

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

您使用的是SQL Server吗?它是一个使用SQL Server LocalDb的asp.net应用程序。基本上,我必须手动应用约束。到数据库表。嗯,是的。与直接更改数据库相比,向配置文件中添加上述行的一个优点是,如果需要从头开始重新部署系统,则不必记住要这样做。
db.Database.ExecuteSqlCommand("ALTER TABLE TravellerTripStatus ADD CONSTRAINT CK_TravellerTripStatus_OverallExperienceFb CHECK (OverallExperienceFb BETWEEN 0 AND 5)");