zoukankan      html  css  js  c++  java
  • EFCore的使用(Sql或Mysql)

    1.安装nuget包,

    Install-package Microsoft.EntityFrameworkCore
    Install-package Microsoft.EntityFrameworkCore.SqlServer

    Install-package Microsoft.EntityFrameworkCore.Tools

    2.创建尸体上下文类

      public class TestContext : DbContext
      {
        public TestContext()
        {
    
        }
        /// <summary>
        /// constructor for Coding first
        /// </summary>
        /// <param name="options"></param>
        public TestContext(DbContextOptions<TestContext> options) : base(options) { 
        
        }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
          //optionsBuilder.UseSqlServer(@"Server=.;Database=Blogging;Integrated Security=True;User ID=tom;Password=MS410882wangcong");
          optionsBuilder.UseSqlServer(@"Server=.;Database=dbnamep;User ID=t;Password=;");
        }
        public DbSet<LocationInfo> locationInfos { get; set; }
        public DbSet<Car> cars { get; set; }
      }

      /// <summary>
      /// location information
      /// </summary>
      [Table("LocationInfo")]
      public class LocationInfo
      {
        [Key]
        public int id { get; set; }
        //[Key]
        //public int id { get; set; }
        /// <summary>
        /// name
        /// </summary>
        public string name { get; set; }
    
        /// <summary>
        /// address
        /// </summary>
        public string address { get; set; }
      }
      [Table("Car")]
      public class Car
      {
        [Key]
        public int id { get; set; }
        public string carName { get; set; }
      }

    3.在action中使用

        [HttpPost]
        public string Post(object user) {
          User userModel = JsonConvert.DeserializeObject<User>(user.ToString());
          try {
            using (var content = new TestContext())
            {
              var log = logging;
              var a = content.cars;
              content.cars.Add(new Car() { carName = userModel.firstName });
              content.SaveChanges();
            }
          }
          catch (Exception e) {
            Console.WriteLine(e.Message);
          }
          return $"post success:{userModel.firstName}";
        }

    4.Coding first,根据代码生成数据库和数据库的表

    注意,一定要安装

    Microsoft.EntityFrameworkCore.Tools
    4.1在startup类中声明
          #region  EF Coding first
          services.Configure<CookiePolicyOptions>(options =>
          {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
          });
    
          var connectionString = Configuration.GetConnectionString("DefaultConnection");
          services.AddDbContext<TestContext>(options =>
          options.UseSqlServer(connectionString));
    
          services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
    
          #endregion

    4.2实体上下文添加构造函数

        /// <summary>
        /// constructor for Coding first
        /// </summary>
        /// <param name="options"></param>
        public TestContext(DbContextOptions<TestContext> options) : base(options) { 
        
        }

    4.3 Tools=>Nuget package manager => package manager console

    先输入 Add-Migration FirstMigration,再输入Update-Database。迁移成功后,会创建数据库,以及会在项目中生成一个Migrations文件夹,里面时迁移记录。

     二.MySql

    与sqlserver的区别在于2点,1.应用程序集不同,2.在startup类中使用UseMySql替换UseSqlserver

    2.1.下载Mysql.Data.EntityFrameworkCore

     2.2 StartUp类中

    public void ConfigureServices(IServiceCollection services)
            {
                services.Configure<CookiePolicyOptions>(options =>
                {
                    // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                    options.CheckConsentNeeded = context => true;
                    options.MinimumSameSitePolicy = SameSiteMode.None;
                });
    
    
                services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
    
                var connection = Configuration.GetConnectionString("MysqlConnection");
                services.AddDbContext<MysqlDbContext>(options => options.UseMySQL(connection));
            }

    2.3DbContext

    public class MysqlDbContext : DbContext
        {
            public MysqlDbContext(DbContextOptions<MysqlDbContext> options):base(options)
            {
    
            }
            //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            //{
            //    optionsBuilder.UseMySQL("server=.;database=TestDb;user=root;password=123456;");
            //}
            //protected override void OnModelCreating(ModelBuilder modelBuilder)
            //{
            //    base.OnModelCreating(modelBuilder);
            //}
    
            public DbSet<Student> students { get; set; }
        }


  • 相关阅读:
    NLP 基础问题及解析
    linux 命令精简
    linux 文件属性及操作
    linux 文件编辑命令vim
    NLP attention 简述
    数据结构
    2020 走进新时代
    条件随机场CRF 摘要
    linux的jdk、tomcat、tomcat安装等
    VMware所在磁盘满了、linux中date修改、ssh、eclipse的使用问题等
  • 原文地址:https://www.cnblogs.com/kingsmart/p/14991814.html
Copyright © 2011-2022 走看看