EF Core的安裝、EF Core與數據庫結合


一.新建一個.net core的MVC項目

           

               

              新建好項目后,不能像以前一樣直接在新建項中添加ef,

              需要用命令在添加ef的依賴

  

  二.EF Core實體框架核心安裝:

  1. 工具> NuGet軟件包管理器>軟件包管理器控制台

  2. Install-Package Microsoft.EntityFrameworkCore.SqlServer

  3. Install-Package Microsoft.EntityFrameworkCore.Tools

  4. Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design      

             

  安裝成功后就可以在Nuget依賴項中看到

              

 

 四.更具一個命令就可以從數據庫生成model了       

  方式一:(通過現有數據庫創建模型)

 Scaffold-DbContext "Server=.;Database=Food;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

 

    該命令會在Models文件夾下生成數據庫中的表和上下文對象

                     注:執行這一步的時候出現了點問題 ,因為系統是win7,powershell版本太低了,不支持這個命令,需要安裝

                        3.0以上的powershell版本才行         

 

            添加成功后在models可以看到, 生成了上下文對象與和表對應的model

 

               

         現在就可以使用EF了

 public IActionResult Index()
        {

            FoodContext fc = new FoodContext();

            List<ProType> ptlist = fc.ProType.ToList();

            ViewBag.ptlist = ptlist;

            return View();
        }

     方式二:(通過模型創建數據庫)

    1.創建上下文類

public class FoodContext : DbContext
{
    public FoodContext (DbContextOptions<FoodContext> options)
        : base(options)
    { }

    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

public class Blog
{
  public int BlogId { get; set; }
  public string Url { get; set; }

  public List< Post > Posts { get; set; }
}

public class Post
{
  public int PostId { get; set; }
  public string Title { get; set; }
  public string Content { get; set; }

  public int BlogId { get; set; }
  public Blog Blog { get; set; }
}

    2.在startup.cs的ConfigureServices方法中中將上下文類注冊為全局服務:
        services.AddDbContext(options => options.UseSqlServer(connection));

    3.在appsetting文件中增加連接字符串connection

    4.創建數據庫
      工具 - > NuGet軟件包管理器 - >軟件包管理器控制台
      //創建模型的初始表
      Add-Migration InitialCreate
      //將新遷移應用於數據庫
      Update-Database

 

五.使用依賴注入來裝載EF的上下文對象

                .net core中用了不少的依賴注入,官方文檔中也推薦使用           

                 1:刪除方法

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
            optionsBuilder.UseSqlServer(@"Server=.;Database=Food;Trusted_Connection=True;");
        }

     2:添加方法

     public FoodContext(DbContextOptions<FoodContext> options)
            : base(options)
        {

        }

     添加的是一個構造函數用於注入

     3:在startup.cs的configureServices方法中添加依賴注入

  public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddMvc();

            services.AddDbContext<FoodContext>(option => {
                option.UseSqlServer("Data Source =.; Initial Catalog = EFCore_dbfirst; User ID = sa; Password = sa.123");
            });
            
        }

 

 

 

 

微軟官方文檔:

          https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM