ASP.Net EF架构

2021-01-30 12:16

阅读:433

标签:evel   level   com   modify   方法   delete   net   help   get   

类别

///


/// 用户类
///

[Table("TB_User")]
public class UserModel
{
[Key]
public int UId { get; set; }
public int UName { get; set; }
[ForeignKey("UserLevel")]
public int LevelId { get; set; }
public UserLevelModel UserLevel { get; set; }
}

///


/// 用户级别类
///

[Table("TB_UserLevel")]
public class UserLevelModel
{
[Key]
public int LId { get; set; }
public string LName { get; set; }
public int Level { get; set; }
}

CONTEXT

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

 

EFDBHELPER

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);//直接通过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);
}
}

控制器

EFHelper _userDAL = new EFHelper();
EFHelper _userLevelDAL = new EFHelper();
[HttpGet]
public IHttpActionResult Show()
{
var linq = from u in _userDAL.Show().AsEnumerable()
join e in _userLevelDAL.Show().AsEnumerable() on u.LevelId equals e.LId
select new UserModel()
{
LevelId = u.LevelId,
UId = u.UId,
UName = u.UName,
UserLevel = new UserLevelModel()
{
Level = e.Level,
LId = e.LId,
LName = e.LName
}
};
return Ok(linq.ToList());
}

 

ASP.Net EF架构

标签:evel   level   com   modify   方法   delete   net   help   get   

原文地址:https://www.cnblogs.com/XJNB/p/13196340.html


评论


亲,登录后才可以留言!