CodeFirst+MySQL+.Net Core配置详情

时间:2022-02-24 17:16:36

EF 基础操作:http://www.cnblogs.com/M-LittleBird/p/5852395.html

一、使用CodeFirst模式

     1、在需要添加的项目上右键点击选择添加ADD.NET 实体数据模型。

CodeFirst+MySQL+.Net Core配置详情

2、选择模型内容,选择CodeFirst模型,选择自己需要的类型,这里我选择空的CodeFirst模型

CodeFirst+MySQL+.Net Core配置详情

3、选择模型后再当前项目中生成 会默认引用 ef 相关 dll,还需要添加mysql相关dll,使用NuGet 安装mysql

CodeFirst+MySQL+.Net Core配置详情

 CodeFirst+MySQL+.Net Core配置详情

添加成功后再项目中会生成以下两个文件

CodeFirst+MySQL+.Net Core配置详情

4、修改App.config中的 数据库连接字符串

mysql

<connectionStrings>
    <add name="MyContext" connectionString="server=127.0.0.1;user id=root;password=;persistsecurityinfo=True;database=schedule" 
     providerName="MySql.Data.MySqlClient" />
</connectionStrings>

sql server

<connectionStrings>
    <add name="MyContext" connectionString="Data Source=.;Initial Catalog=xxxx;Persist Security Info=True;User ID=xx;Password=xxx;Connect Timeout=120;" 
     providerName="System.Data.SqlClient" />
</connectionStrings>

5、重名名 Model1 为 MyContext 并修改内容,修改如下

namespace BooksStore.Domain
{
    using MySql.Data.Entity;
    using System;
    using System.Data.Entity;
    using System.Linq;


    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    public class MyContext : DbContext
    {
        //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config)
        //使用“Model1”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的
        //“BooksStore.Domain.Model1”数据库。
        // 
        //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“Model1”
        //连接字符串。
        public MyContext()
            : base("name=MyContext")
        {
        }

        //为您要在模型中包含的每种实体类型都添加 DbSet。有关配置和使用 Code First  模型
        //的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=390109//这是示例 改为自己的实体类
        public virtual DbSet<MyEntity> MyEntities { get; set; }
    }
    //这是示例 改为自己的实体类
    public class MyEntity
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

 注:实例类名称建议同数据库表名保持一致,这里默认把类名当作数据库表名。

ASP.NET CORE 中配置

直接复制上面的MyContext类到core项目中。

使用NuGet添加包:Pomelo.EntityFrameworkCore.MySql。

Startup类中注册服务,修改如下:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    //注册mysql服务
    services.AddDbContext<SMContext>(options => options.UseMySql(Configuration["ConnectionStrings:DefaultConnection"]));
}

appsettings.json中添加数据库字符串配置,配置如下:

{
  "ConnectionStrings": {
    "DefaultConnection": "server=127.0.0.1;user id=root;password=123456;persistsecurityinfo=True;database=schedule",
    "DotNetCoreConnection": "Server=(localdb)\\mssqllocaldb;Database=DotNetCoreDb;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}