您的位置:首页 > 运维架构

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;

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: