Code First的migration应用

在采用Code First模式开发C#系统时,可以采用执行migration指令来将实体模型的变化同步到数据库中,在实际应用过程中,更多的是连接到SQLServer而非SQL Express或LocalDB,各大网站和博客以及微软的www.asp.net已经清楚的告诉了处理步骤,这里就谈谈需要注意的事项:

1、Migration系列指令是针对包含DbContext派生类的项目进行的,与实体类项目可以不在同一个项目。

2、DbContext所在项目必须引用了Entity Framework,而实体类所在项目可以不引用Entity Framework。

3、Migration系列指令指定的项目必须包含App.config或Web.config文件,在该文件中需要包含如下代码:

<connectionStrings>
  <add name="VmeDbContext" providerName="System.Data.SqlClient" connectionString="server=localhost;database=YiBusiness;uid=vme;pwd=123qweASD" />
</connectionStrings>

4、若配置文件中的ConnectionString的name与DbContext派生类名称不同,则需要该派生类中传入name值,如下:

using System.Data.Entity;
using VME.Data.Entity;

namespace VME.Data.Access
{
    public class VmeDbContext : DbContext
    {
        /// <summary>
        /// 设定数据库连接串名称
        /// </summary>
        public VmeDbContext() : base("VmeDbContext")
        {

        }
        public DbSet<User> Users { get; set; }
        
        public DbSet<MobileDevice> MobileDevices { get; set; }

        public DbSet<Account> Accounts { get; set; }
    }
}

Migration指令解释:

1、enable-migrations -projectName <ProjectName> -connectionString <ConnectionString> -connectionprovidername <ConnectionProviderName>

功能:项目启动Migration功能的第一步必须执行的操作。 执行该方法会生成Migrations目录及其下的Configuration.cs文件,有时还会产生一个初始化的cs文件

参数: -projectName 指需要执行Migration操作的项目。

-connectionString 指数据库连接字符串。

-connectionprovidername 数据连接提供商名称。

上述三项就是App.config文件中ConnectionString节点需要设置的信息,也就是说,若你没有App.Config或Web.Config文件,可以通过在参数中给出这些数据获得同样的效果。

2、add-migration -name <Name> -projectName <ProjectName> -connectionString <ConnectionString> -connectionprovidername <ConnectionProviderName>

功能:根据实体对象生成数据库结构变化的cs文件。

参数: -name 生成的cs文件名的格式为:时间戳_name.cs。

3、update-database -projectName <ProjectName> -connectionString <ConnectionString> -connectionprovidername <ConnectionProviderName>

功能:执行由add-migration生成的代码,确保目标数据库与实体类结构一致。


关于Migration更为详细的信息请进入“程序包管理器控制台”,输入下列代码:

get-help enable-migrations -detailed

get-help add-migration -detailed

get-help Update-Database -detailed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值