Entity framework 我的程序使用实体框架。如何向数据库表中添加字段而不让它们抛出异常?

Entity framework 我的程序使用实体框架。如何向数据库表中添加字段而不让它们抛出异常?,entity-framework,Entity Framework,我的程序使用实体框架。我想向这些程序引用的建模数据库表中添加新字段,但这些程序不会使用这些新字段(其他程序将使用它们)。现有程序似乎开始抛出异常,即使它们没有引用这些新字段。有办法解决这个问题吗?我过去的经验是,实体框架可以忽略数据库字段,只要它们可以为空。如果新字段不可为空,Entity Framework会抛出异常,因为它无法为这些字段生成有效的insert语句。我认为答案(或者解决方法)如下(我的经验是仅使用SQL Server,并使用SSM编辑数据库表): 如果您有一个正在运行的系统,并

我的程序使用实体框架。我想向这些程序引用的建模数据库表中添加新字段,但这些程序不会使用这些新字段(其他程序将使用它们)。现有程序似乎开始抛出异常,即使它们没有引用这些新字段。有办法解决这个问题吗?

我过去的经验是,实体框架可以忽略数据库字段,只要它们可以为空。如果新字段不可为空,Entity Framework会抛出异常,因为它无法为这些字段生成有效的insert语句。

我认为答案(或者解决方法)如下(我的经验是仅使用SQL Server,并使用SSM编辑数据库表):


如果您有一个正在运行的系统,并且希望将新字段添加到数据库表中,请确保将这些字段添加到表定义的“末尾”,否则您将不得不根据新表定义重新构建所有正在运行的进程。

只是想一想,我怀疑这是最好的解决方案


您根据视图而不是表生成模型,这将使您能够根据需要自由修改基础表。

可能存在一些迁移历史不匹配的情况,但这是一个不知道异常情况的猜测。只是好奇,您是否使用EF尝试过此操作,并验证所描述的问题是否消失了?也就是说,如果我将字段添加到表和视图中(而不是在末尾),它还会抛出异常吗?如果是这样,那么它真的没有帮助,这就是我的猜测。我同意,一般来说,针对视图的编程可能具有优势,但问题涉及EF模型。如果你已经证实了这一点,我会把我最好的答案改成你的。谢谢。所以现在就试着把它作为一个简单的例子,它确实像预期的那样工作。由于视图没有改变,EF没有抱怨。不知道这在代码优先的方法中会如何,我们不使用这种方法。