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"/>
然后在程序包管理控制台输入命令