我可以在数据库中添加列,然后在与这些列对应的模型中添加属性吗?

时间:2016-10-06 09:05:02

标签: c# asp.net asp.net-mvc entity-framework

我有一个使用实体框架的MVC项目。我需要在我的数据库中添加一些列。是否可以只编写一个SQL脚本来向数据库添加列,然后在我的模型中添加一些与添加的列匹配的属性?我试图在这里避免代码优先迁移。我的方法会起作用吗?如果没有,这个问题的最佳解决方案是什么?

提前致谢

2 个答案:

答案 0 :(得分:0)

是的,当然有可能。如果您的表遵循Entity Framework命名约定,那么您所要做的就是添加新列并在适当的实体类中添加新属性,其名称与新列相同。

public class Stuff{
    public int ID { get; set; }
    public string Name { get; set; }
    //your new column in database is named "NewColumn"
    public string NewColumn { get; set; }
}

如果您不遵循此约定,则应使用Column annotation在实体类中装饰新属性,以明确告知实体框架他应该在哪里查找此属性的值。

public class Stuff{
    public int ID { get; set; }
    public string Name { get; set; }
    //your new column
    [Column("my_new_column")]
    public string NewColumn { get; set; }
}

答案 1 :(得分:0)

如果要避免多次迁移,可以先添加属性,运行add-migration命令,然后运行update-database,然后继续为所需的任何新属性执行此操作。 当您最终达到不期望任何更改的状态时,您可以删除所有已创建的迁移,然后再次运行add-migration命令,然后update-database,这将创建一个具有整个数据库架构。 如果您还处于开发阶段的早期阶段,这非常有用