EF修改model自动更新数据库

最近用MVC+EF学习时遇到修改model后而数据库没更新报错,就在网上找关于数据迁移自动更新数据库的,折腾了大半天终于弄了出来

第一步:在程序包管理器控制台里: Enable-Migrations -ProjectName EF所在的项目名称

第二步:运行后会在字段生成Migrations文件夹,Migrations->Configuration.cs 类里把AutomaticMigrationsEnabled改为true(即设为model有改动自动更新数据库)

    如有删除字段则要加 AutomaticMigrationDataLossAllowed = true(可接受自动迁移期间的数据丢失的值)

第三步:在OwnDbContext里

public OwnDbContext()
            : base("DefaultConnection")
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<OwnDbContext, Own.Model.Migrations.Configuration>());
        }

PS:在查的一些资料中有些没有第三步,可我的不改这个还是报错改了才可以

时间: 2024-10-17 13:00:56

EF修改model自动更新数据库的相关文章

sqlite自动更新数据库

写一个类继承自  SQLiteOpenHelper 系统会自动添加构造方法. onCreate方法.onUpgrade方法 当数据库里面数据或者表结构有所改动时,咱们需要升级数据库 这个时候,版本加1.在update里面做相应修改. 需要注意的是,如果需要测试update,每次开始测试,version 值增大,如果和上次的相同,就不会促发update方法了 下面贴上代码 先是原来的表结构,对应的代码 import android.content.Context; import android.d

Code First 下自动更新数据库结构(Automatic Migrations)

示例 Web.config <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramew

EF-使用迁移技术让程序自动更新数据库表结构

承接上一篇文章:关于类库中EntityFramework之CodeFirst(代码优先)的操作浅析 本篇讲述的是怎么使用迁移技术让程序自动通过ORM框架将模型实体类结构映射到现有数据库,并新增或修改与之对应的表结构. 无论承不承认,都要使用到visual studio的"程序包管理器控制台"执行相关的命令. 1.使用"程序包管理器控制台" 工具>NuGet程序包管理器>程序包管理器控制台 这货的界面是这样子的: 选中默认项目为DAL,因为我们在DAL项目

ASP.NET MVC5利用EF,反向自动生成数据库

1.在Model类里面,写好相应的属性. 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Data.Entity; 6 7 namespace MvcMovie.Models 8 { 9 public class Movie 10 { 11 public int ID { get; set; } 12 public string

django修改模型后更新数据库

当django改变模型过后,需要重新更新数据库,更新方法如下 比如app的名字是rango python manage.py makemigrations rango(创建迁移脚本)  然后运行  python manage.py migrate

MVC Code First 当实体类发生变化时,如何自动更新数据库表

下面做一个例子,Category是用户新建的一个实体类,然后添加一个字段,然后让数据库中的Category表也添加一个字段 1.Category.cs using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; namespace BlogAppDAL.Entities { public clas

EF生成实体自动添加数据库字段注释

我们在用EF从数据库生成模型的时候,默认实体类是没有注释的,但是我们已经在数据库字段添加说明了,能不能自动把注释也拿过来? 答案是:能. 那么我们开始 首先随便开一个ASP.NET   MVC项目,我们添加ADO实体数据模型.添加完成后我们打开userinfo.cs(这里我的模型名称为userinfo)如图: 双击打开后发现现在是没有注释的. 然后下载此文件:GetSummery.ttinclude (这个文件没有放下载链接,可以去网上找找,也可以给我留言评论我来给你) 嗯,现在下载完文件后把他

设置EntityFramework 在开发时自动更新数据库

1. NuGet 下载EntityFramework. 2. 定义Context 和 打开NuGet 命令 执行 Enable-Migrations , Libaray.DAL.Migrations.Configuration 要在执行命令后自动产生. using Libaray.Models.Entities; using Libaray.Models.Maps; using System; using System.Collections.Generic; using System.Data

C# 利用FTP自动下载xml文件后利用 FileSystemWatcher 监控目录下文件变化并自动更新数据库

using FtpLib; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO; using System.Linq; using System.ServiceProcess; using System.Text; using System.Threading; using