NET Core 使用 EF Code First 实战演练

项目使用多层,把数据库访问层,单独放到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();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值