我正在尝试使用数据库优先方法向现有数据库(MS SQL Server)和 MVC 3 模型添加一个新字段。数据库和模型结构非常复杂,DB 包含大量数据,因此无法删除数据库并重新构建它。到目前为止,我尝试了以下方法无济于事:
首先将字段添加到数据库中,然后进入 .edmx 文件。我单击表格并选择“从数据库更新模型”
- 这会将字段添加到模型中,但不会从数据库中提取数据。我通过在调试期间中断并检查模型列表来检查这一点。它只是为该字段提供模型中的默认值。
- 这会将字段添加到模型中,但不会从数据库中提取数据。我通过在调试期间中断并检查模型列表来检查这一点。它只是为该字段提供模型中的默认值。
首先在模型中添加字段,然后将字段添加到数据库中(使用下面的脚本)。
- 这将使用“_1”创建第二个模型变量并将其映射到数据库字段。
代码参考
将字段添加到数据库表中的脚本:
ALTER TABLE stores
ADD active bit NOT NULL DEFAULT 1
添加的模型的代码:
public bool active { get; set; }
填充商店列表的代码:
var storeList = (from n in db.stores select n).ToList();
如何让它在模型字段将由数据库中的数据而不是模型默认值填充的情况下工作?