zoukankan      html  css  js  c++  java
  • Entity Framework 6 Code First的简单使用和更新数据库结构

    Entity Framework 6 Code First的简单使用和更新数据库结构

    一、安装Entity Framework 6

          在项目中右击选择“管理NuGet程序包",联机搜索Entity Framework,点击安装

      

      

    二、配置数据库连接

      在App.config中加入数据库连接字符串的配置

    <connectionStrings>
        <add name="DBContext" connectionString="data source=127.0.0.1;uid=sa;pwd=123;database=test;" providerName="System.Data.SqlClient"/>
     </connectionStrings>

    三、DbContext及实体类

        public class MyContext:DbContext
        {
            public MyContext() : base("DBContext") { }
            public DbSet<Product> Products { get; set; }
        }
    
    
        public class Product
        {
            [Key]
            public string Code { get; set; }
    
            public string Name { get; set; }
    
            public int Quantity { get; set; }
        }

    四、简单测试

            static void Main(string[] args) {
                using (MyContext db = new MyContext()) {
                    var product = new Product { Code = "1", Name = "p1" };
                    db.Products.Add(product);
                    db.SaveChanges();
                }
            }

    五、更新数据库结构

      1.点击视图->其他窗口->程序包管理器控制台

      

      2.输入Update-Database

       这时会出现“No migrations configuration type was found in the assembly 'EF6CodeFirst'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration).“

      3.输入Enable-Migrations

        命令执行成功后会在项目中自动添加Migrations,目录里有一个Configuration.cs,打开Configuration.cs把AutomaticMigrationsEnabled修改为true

      4.再次尝试执行Update-Database

       命令能正确执行

      5.我们尝试删除Name字段,然后执行Update-Database

         由于Name字段有数据,命令执行失败,显示如下错误:Automatic migration was not applied because it would result in data loss

         这个时候能用Update-Database -Force来强制更新数据库,但这将造成数据丢失

    六、总结

      Entity Framework 6 Code First能使数据库访问和实体操作代码变得很简洁,但如果项目开发过程中需要频繁的更改数据库就要考虑清楚才使用了。

  • 相关阅读:
    java——base64 加密和解密
    BASE64Encoded() 方法报错说方法未定义
    java 实现HTTP连接(HTTPClient)
    如何关闭一些烦人的弹窗(总结)
    IDEA
    6、git和github
    5、预测和鉴定miRNA的靶基因
    4、在线blast比对结果解析(保守结构域)
    ASE分析
    3、Linux下配置Java环境
  • 原文地址:https://www.cnblogs.com/grj001/p/12223610.html
Copyright © 2011-2022 走看看