首页 > 编程知识 正文

NET Core 使用 EF Code First,core使用

时间:2023-05-03 17:16:22 阅读:287031 作者:4798


         项目使用多层,把数据库访问层,单独放到DAL层里



     一:新建好项目与类库, 并添加好EF依赖


      


      然后在dll层添加好ef的依赖,可以使用Nuget包下载,我们这里使用在DAL.csproj里边配置依赖

      自动下载  Microsoft.EntityFrameworkCore.SqlServer

      


       自动下载完依赖后可以在依赖项中看到

       




  :在DAL层添加好model与上下文对象

   

    

   

    Users.cs:    

public class Users { public int Id { get; set; } public string UserName { get; set; } public string Address { get; set; } public int Age { get; set; } }

       MyDataContext:     

public class MyDataContext : DbContext { public MyDataContext(DbContextOptions<MyDataContext> options) : base(options) { } public DbSet<Users> Users { get; set; } }

    

   三:在第一层中添加好EF的依赖注入


public void ConfigureServices(IServiceCollection services) { // Add framework services. //添加ef的依赖 var connection = "server=.;uid=sa;pwd=123456;database=codefirst"; services.AddDbContext<MyDataContext>(options => options.UseSqlServer(connection)); services.AddMvc(); }

      第一层中也需要引用名称空间 using Microsoft.EntityFrameworkCore

      因为UseSqlServer这个扩展方法是在这个依赖里边的



    四:使用命令通过代码生成数据库

              


           先输入:Add-Migration  MyFirstMigration(名字)

           在输入:Update-Database  


       执行成功后就会更具你配置的连接字符串与model去生成数据库



       执行命令可能遇到的错误

           

           这个是因为执行这个命令还需要一个依赖,在DAL.cspoj中配置好就行

           <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" />




    五:直接在控制器中使用EF

       

private MyDataContext _context; public HomeController(MyDataContext context) //依赖注入得到实例 { _context = context; } public IActionResult Index() { //使用ef添加一条数据 Users us = new Users(); us.UserName = "xp"; us.Age = 26; us.Address = "jk"; _context.Users.Add(us); _context.SaveChanges(); return View(); }

    

    六:在DAL层中使用EF

      

           操作数据库的还是应该放到数据库访问层,而不是直接在控制器里边去写

           


           在DAL层中添加接口IUserDAL        

public interface IUserDAL { void Insert(); }       

          UserDAL 中去实现IUserDAL并使用EF操作数据库           

public class UserDAL: IUserDAL { private MyDataContext _context; public UserDAL(MyDataContext context) //依赖注入得到ef实例 { _context = context; } public void Insert() { //使用ef添加一条数据 Users us = new Users(); us.UserName = "xp"; us.Age = 26; us.Address = "jk"; _context.Users.Add(us); _context.SaveChanges();//保存到数据库 } }

           Startup.cs中配置好DAL层的依赖注入关系        

services.AddTransient<IUserDAL,UserDAL>();

          控制器中借助DAL层去实现数据库访问    

private IUserDAL _iud; public HomeController(IUserDAL iud) //依赖注入得到DAL层实例 { _iud = iud; } public IActionResult Index() { //添加数据 _iud.Insert(); return View(); }
    

        





版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。