EF Core的使用

EF Core 数据库初始化与注入
1. CodeFirst:    
    方法一:用vs的PM命令来实现(注意:必须把默认项目设置成DbContenxt所在的项目,生成的数据库会在可以执行项目中
        a.    Add-Migration Init(名称,可以是任意值)
        b.    Update-Database Init(用我们刚刚创建的名称迁移来更新数据库) 
    方法二:用cmd控制台输入命令来实现
        a.    dotnet ef migrations add Initial(名称,可以是任意值)
        b.    dotnet ef database update(用我们刚刚创建的迁移来更新数据库)
        c.    dotnet ef migrations add UserTableUpdateAccount(更新) 

2.注入
    在Web项目Startup类的ConfigureServices方法中注入DbContext:
                //const string connection = "Filename=./efcoredemo2.db";
                //services.AddDbContext<RuntimeContext>(options => options.UseSqlite(connection));  //sqlite数据库
                //services.AddDbContext<RuntimeContext>(options => options.UseSqlServer("DefaultConnection")); //sql数据库
                //连接池方式注入
                services.AddDbContextPool<RuntimeContext>(options => options.UseSqlite(GetConnection()));

3.初始化数据
    与EF Core 1.x不同的是,2.0是在Program.cs里的Main方法里(1.x是在Startup.cs中的Configure方法中)添加初始化方法。
    public static void Main(string[] args)
         {
             var host = BuildWebHost(args);
             using (var scope = host.Services.CreateScope())
             {
                 var services = scope.ServiceProvider;
                 try
                 {
                     SeedData.Initialize(services);
                 }
                 catch(Exception ex)
                 {
                     var logger = services.GetRequiredService<ILogger<Program>>();
                     logger.LogError(ex, "An error occurred seeding the DB");
                 }
            }
                 host.Run();
         })

转载于:https://www.cnblogs.com/dxx8575/p/8288459.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值