.net core mvc中使用ef

本文介绍如何在ASP.NET Core MVC项目中集成Entity Framework Core,包括添加EF Core依赖、从现有数据库生成模型以及配置依赖注入。



             使用环境win7+2017



  一.新建一个.net core的MVC项目

           

               

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

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

  


  二.使用Nuget添加EF的依赖

          

               输入命令:  Install-Package Microsoft.EntityFrameworkCore.SqlServer

               


              安装成功后就可以在Nuget依赖项中看到

               



  三.如果是使用db first,需要根据数据库生成model,就还需要使用命令添加两个依赖

             

        Install-Package Microsoft.EntityFrameworkCore.Tools

        Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design


            

             安装成功后就可以在Nuget依赖项中看到

              



 四.更具一个命令就可以从数据库生成model了       


              Scaffold-DbContext "Server=.;Database=Food;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir 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();
        }

         


 五.使用依赖注入来装载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");
            });
            
        }

                  注:usersqlserver是一个扩展方法,需要添加ef core的引用using Microsoft.EntityFrameworkCore;




        微软官方文档:

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


在ASP.NET Core MVC应用中使用数据库,可借助不同工具和技术实现,以下是常用方法: ### 借助EF Core连接数据库 EF Core.NET Core中的ORM(对象关系映射)工具,其允许开发者通过面向对象的方式来操作数据库,而无需编写复杂的SQL语句。具体步骤如下: 1. **配置数据库连接**:在`program.cs`文件中添加配置,示例代码如下: ```csharp builder.Services.AddDbContext<你自己context的名字>(options => options.UseMySql(builder.Configuration.GetConnectionString("MysqlConnection"), Microsoft.EntityFrameworkCore.ServerVersion.Parse("5.7.36-mysql"))); ``` 需把上述代码里的版本和context名字替换为实际内容 [^4]。 2. **创建数据库**:可基于EF Core创建数据库,要了解其作用和连接数据库的步骤 [^3]。 ### 基于命令行连接数据库 除了使用EF Core,也能通过命令行连接数据库,不过引用中未详细说明具体步骤 [^3]。 ### 结合EF Core操作MySQL数据库 在ASP.NET Core MVC应用程序里,可使用EF Core操作MySQL数据库,进而实现数据的增删改查功能。涉及的技术栈包含: - **ASP.NET Core MVC**:跨平台、高性能的框架,用于构建Web应用程序。该框架结合了MVC(模型 - 视图 - 控制器)设计模式,有助于开发者更好地组织代码,提升代码的可维护性。 - **Entity Framework Core**:.NET Core中的ORM工具,允许开发者以面向对象的方式操作数据库。 - **MySQL**:广泛使用的关系型数据库管理系统,适用于各种规模的应用程序 [^2]。 相关教程可参考ASP.NET Core MVC入门之数据库:https://learn.microsoft.com/zh-cn/aspnet/core/tutorials/first-mvc-app/working-with-sql?view=aspnetcore-7.0&tabs=visual-studio [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值