EF TransactionScope 及增删改查用法
2016-03-18 10:16
441 查看
using HLDC.Utility;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using HLDC.Server.DataAccess.DTO;
using HLDC.Server.DataAccess.Model;
using System.Transactions;
namespace HLDC.Server.DataAccess.BLL
{
public class ElecTerminalBLL
{
//添加终端
public static int AddElecTerminal(ElecTerminalDTO ElecTerminalDTO)
{
using (TransactionScope scope = new TransactionScope())
{
PMDBEntities DB = new PMDBEntities();
DB.Configuration.ProxyCreationEnabled = false;
ElecTerminalAsset elecTAsset = ElecTerminalDTO.MapTo<ElecTerminalAsset>();
var v = DB.ElecTerminalAssets.Add(elecTAsset);
int n1 = DB.SaveChanges();
ElecTerminal elecTerminal = ElecTerminalDTO.MapTo<ElecTerminal>();
if (n1 > 0)
{
elecTerminal.TerminalAssetID = v.ID;
}
DB.ElecTerminals.Add(elecTerminal);
int n = DB.SaveChanges();
scope.Complete();
return n;
}
}
//获取终端Model
public static ElecTerminalDTO GetElecTerminalModel(int ID)
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
var ElecTerminal = DB.ElecTerminals.Include(c => c.ElecTerminalAsset).Where(c => c.ID.Equals(ID)).FirstOrDefault();
if (ElecTerminal == null)
{
throw new Exception("该终端已不存在");
}
ElecTerminalDTO v= ElecTerminal.MapTo<ElecTerminalDTO>();
v.TerminalAssetNo = ElecTerminal.ElecTerminalAsset.TerminalAssetNo;
v.BarCode = ElecTerminal.ElecTerminalAsset.BarCode;
v.Producer = ElecTerminal.ElecTerminalAsset.Producer;
v.EquipType = ElecTerminal.ElecTerminalAsset.EquipType;
return v;
}
}
//更新终端
public static int UpdateElecTerminal(ElecTerminalDTO ElecTerminalDTO)
{
using (TransactionScope scope = new TransactionScope())
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
ElecTerminalAsset elecTAsset = DB.ElecTerminalAssets.Where(c => c.ID.Equals(ElecTerminalDTO.ID)).FirstOrDefault();
//elecTAsset.BarCode = ElecTerminalDTO.BarCode;
//elecTAsset.EquipType = ElecTerminalDTO.EquipType;
//elecTAsset.Producer = ElecTerminalDTO.Producer;
//elecTAsset.TAssetNo = ElecTerminalDTO.TAssetNo;
//elecTAsset.ModifyBy=
if (elecTAsset != null)
{
ElecTerminalDTO.MapTo<ElecTerminalAsset>(elecTAsset);
DB.SaveChanges();
}
ElecTerminal ElecTerminal = DB.ElecTerminals.Where(c => c.ID.Equals(ElecTerminalDTO.ID)).FirstOrDefault();
if (ElecTerminal == null)
{
throw new Exception("该终端已不存在");
}
ElecTerminalDTO.MapTo<ElecTerminal>(ElecTerminal);
int n = DB.SaveChanges();
scope.Complete();
return n;
}
}
}
//删除终端
public static int DeleteElecTerminal(int TerminalID)
{
using (TransactionScope scope = new TransactionScope())
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
var v = DB.ElecTerminals.Include(c => c.ElecTerminalAsset).FirstOrDefault(c => c.ID.Equals(TerminalID));
if (v == null)
{
throw new Exception("该终端已不存在");
}
DB.Entry(v.ElecTerminalAsset).State = EntityState.Deleted;
DB.Entry(v).State = EntityState.Deleted;
int n = DB.SaveChanges();
scope.Complete();
return n;
}
}
}
//获取基础终端列表
public static List<ElecTerminalDTO> GetElecTerminalList(string cpName, string parentUnitID)
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
var predicate = PredicateBuilder.True<ElecTerminal>();
if (cpName != "")
{
predicate = predicate.And(c => c.CPName.Contains(cpName));
}
if (parentUnitID != "")
{
int tempParentID = Convert.ToInt32(parentUnitID);
predicate = predicate.And(c => c.ParentUnitID == tempParentID);
}
List<ElecTerminal> ElecTerminalList = DB.ElecTerminals.Where(predicate).ToList();
return ElecTerminalList.MapToList<ElecTerminal, ElecTerminalDTO>();
}
}
//获取基础终端列表(分页)
public static List<ElecTerminalDTO> GetElecTerminalListByPage(string cpName, string parentUnitID, int pageSize, int pageIndex,List<SortFieldInfo> listFieldInfo, out int recordCount)
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
var predicate = PredicateBuilder.True<ElecTerminal>();
if (cpName != "")
{
predicate = predicate.And(c => c.CPName.Contains(cpName));
}
if (parentUnitID != "")
{
int tempParentID = Convert.ToInt32(parentUnitID);
predicate = predicate.And(c => c.ParentUnitID == tempParentID);
}
var query = DB.ElecTerminals.Where(predicate);
recordCount = query.Count();
if (listFieldInfo.Count == 0)
{
query = query.OrderBy(c => c.TransOn);
}
for (int i = 0; i < listFieldInfo.Count; i++)
{
query = query.OrderBy(listFieldInfo[i].fieldName, listFieldInfo[i].bAccending);
}
var ElecTerminalList = query.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
var v1 = ElecTerminalList.MapToList<ElecTerminalDTO>();
return v1;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using HLDC.Server.DataAccess.DTO;
using HLDC.Server.DataAccess.Model;
using System.Transactions;
namespace HLDC.Server.DataAccess.BLL
{
public class ElecTerminalBLL
{
//添加终端
public static int AddElecTerminal(ElecTerminalDTO ElecTerminalDTO)
{
using (TransactionScope scope = new TransactionScope())
{
PMDBEntities DB = new PMDBEntities();
DB.Configuration.ProxyCreationEnabled = false;
ElecTerminalAsset elecTAsset = ElecTerminalDTO.MapTo<ElecTerminalAsset>();
var v = DB.ElecTerminalAssets.Add(elecTAsset);
int n1 = DB.SaveChanges();
ElecTerminal elecTerminal = ElecTerminalDTO.MapTo<ElecTerminal>();
if (n1 > 0)
{
elecTerminal.TerminalAssetID = v.ID;
}
DB.ElecTerminals.Add(elecTerminal);
int n = DB.SaveChanges();
scope.Complete();
return n;
}
}
//获取终端Model
public static ElecTerminalDTO GetElecTerminalModel(int ID)
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
var ElecTerminal = DB.ElecTerminals.Include(c => c.ElecTerminalAsset).Where(c => c.ID.Equals(ID)).FirstOrDefault();
if (ElecTerminal == null)
{
throw new Exception("该终端已不存在");
}
ElecTerminalDTO v= ElecTerminal.MapTo<ElecTerminalDTO>();
v.TerminalAssetNo = ElecTerminal.ElecTerminalAsset.TerminalAssetNo;
v.BarCode = ElecTerminal.ElecTerminalAsset.BarCode;
v.Producer = ElecTerminal.ElecTerminalAsset.Producer;
v.EquipType = ElecTerminal.ElecTerminalAsset.EquipType;
return v;
}
}
//更新终端
public static int UpdateElecTerminal(ElecTerminalDTO ElecTerminalDTO)
{
using (TransactionScope scope = new TransactionScope())
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
ElecTerminalAsset elecTAsset = DB.ElecTerminalAssets.Where(c => c.ID.Equals(ElecTerminalDTO.ID)).FirstOrDefault();
//elecTAsset.BarCode = ElecTerminalDTO.BarCode;
//elecTAsset.EquipType = ElecTerminalDTO.EquipType;
//elecTAsset.Producer = ElecTerminalDTO.Producer;
//elecTAsset.TAssetNo = ElecTerminalDTO.TAssetNo;
//elecTAsset.ModifyBy=
if (elecTAsset != null)
{
ElecTerminalDTO.MapTo<ElecTerminalAsset>(elecTAsset);
DB.SaveChanges();
}
ElecTerminal ElecTerminal = DB.ElecTerminals.Where(c => c.ID.Equals(ElecTerminalDTO.ID)).FirstOrDefault();
if (ElecTerminal == null)
{
throw new Exception("该终端已不存在");
}
ElecTerminalDTO.MapTo<ElecTerminal>(ElecTerminal);
int n = DB.SaveChanges();
scope.Complete();
return n;
}
}
}
//删除终端
public static int DeleteElecTerminal(int TerminalID)
{
using (TransactionScope scope = new TransactionScope())
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
var v = DB.ElecTerminals.Include(c => c.ElecTerminalAsset).FirstOrDefault(c => c.ID.Equals(TerminalID));
if (v == null)
{
throw new Exception("该终端已不存在");
}
DB.Entry(v.ElecTerminalAsset).State = EntityState.Deleted;
DB.Entry(v).State = EntityState.Deleted;
int n = DB.SaveChanges();
scope.Complete();
return n;
}
}
}
//获取基础终端列表
public static List<ElecTerminalDTO> GetElecTerminalList(string cpName, string parentUnitID)
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
var predicate = PredicateBuilder.True<ElecTerminal>();
if (cpName != "")
{
predicate = predicate.And(c => c.CPName.Contains(cpName));
}
if (parentUnitID != "")
{
int tempParentID = Convert.ToInt32(parentUnitID);
predicate = predicate.And(c => c.ParentUnitID == tempParentID);
}
List<ElecTerminal> ElecTerminalList = DB.ElecTerminals.Where(predicate).ToList();
return ElecTerminalList.MapToList<ElecTerminal, ElecTerminalDTO>();
}
}
//获取基础终端列表(分页)
public static List<ElecTerminalDTO> GetElecTerminalListByPage(string cpName, string parentUnitID, int pageSize, int pageIndex,List<SortFieldInfo> listFieldInfo, out int recordCount)
{
using (PMDBEntities DB = new PMDBEntities())
{
DB.Configuration.ProxyCreationEnabled = false;
var predicate = PredicateBuilder.True<ElecTerminal>();
if (cpName != "")
{
predicate = predicate.And(c => c.CPName.Contains(cpName));
}
if (parentUnitID != "")
{
int tempParentID = Convert.ToInt32(parentUnitID);
predicate = predicate.And(c => c.ParentUnitID == tempParentID);
}
var query = DB.ElecTerminals.Where(predicate);
recordCount = query.Count();
if (listFieldInfo.Count == 0)
{
query = query.OrderBy(c => c.TransOn);
}
for (int i = 0; i < listFieldInfo.Count; i++)
{
query = query.OrderBy(listFieldInfo[i].fieldName, listFieldInfo[i].bAccending);
}
var ElecTerminalList = query.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
var v1 = ElecTerminalList.MapToList<ElecTerminalDTO>();
return v1;
}
}
}
}
相关文章推荐
- 如何查看Linux内核版本
- linux下安装使用jprofiler8(tomcat)
- linux下如何编译c++工程项目
- Linux系统运行级别
- docker 导入下载模板
- docker 导入下载模板
- OpenCV入门:显示图像
- Linux下MYSQL分库和分表备份方式(学习小结)
- pthread_exit(void *rval_ptr)和pthread_join(pthread_t thread, void **rval_ptr)
- tensorflow(centos 7.0 64)安装
- 屏幕按钮直接调整SM30维护视图
- Linux 系统下 go 安装学习
- properties文件的解析
- Linux系统启动简单流程:
- Linux C实现小项目配置文件读取
- Linux系统自定义命令历史的格式
- Linux内核创建一个进程的过程分析
- 架构师都要懂哪些知识
- Diving into OpenStack Network Architecture
- log4j:WARN Please initialize the log4j system properly解决办法