EF迁移创库+使用

    技术2022-07-10  253

    using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Reflection; using System.Web;

    namespace G6.EFCode.DALS { public class EFHelper where T:class,new() { MyContext db = new MyContext();//实例化一个上下文对象 /// /// 添加 /// /// /// public int Insert(T t) { db.Set().Add(t); return db.SaveChanges(); } /// /// 修改 /// /// /// public int Modify(T t) { db.Set().Attach(t); db.Entry(t).State = EntityState.Modified; return db.SaveChanges(); } /// /// 删除 /// /// /// public int Delete(int id) { var obj = db.Set().Find(id); db.Set().Remove(obj); return db.SaveChanges(); } /// /// 显示 查询 /// /// public DbSet Show() { return db.Set(); } /// /// 批量删除 /// /// /// public int Dels(string ids) { Type type = typeof(T); PropertyInfo[] pros = type.GetProperties(); string sql = $“delete from TB_{type.Name.Replace(“Model”,”")} where {pros[0].Name} in ({ids})"; return db.Database.ExecuteSqlCommand(sql); } } }

    //然后创建EF添加Model类

    namespace G6.EFCode.DALS { using System; using System.Data.Entity; using System.Linq; using G6.EFCode.Models;

    public class MyContext : DbContext { //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config) //使用“MyContext”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的 //“G6.EFCode.DALS.MyContext”数据库。 // //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“MyContext” //连接字符串。 public MyContext() : base("name=MyContext") { } //为您要在模型中包含的每种实体类型都添加 DbSet。有关配置和使用 Code First 模型 //的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=390109。 public DbSet<UserModel> Users { get; set; } public DbSet<UserLevelModel> UserLevels { get; set; } }

    }

    //然后是控制器

    using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using G6.EFCode.DALS; using G6.EFCode.Models;

    namespace G6.EFCode.Controllers { public class UserController : ApiController { EFHelper _userDal = new EFHelper(); [HttpGet] public IHttpActionResult Show() { List list = _userDal.Show().Include(“UserLevel”).ToList();

    return Ok(list); } }

    }

    然后改一下Web.config里的链接数据库的名字(改成数据库没有的)

    <add name="MyContext" connectionString="Data Source=.;Initial Catalog=G6_EFDB2;Integrated Security=True" providerName="System.Data.SqlClient"/>

    然后在程序包管理控制台输入命令

    Processed: 0.054, SQL: 9