CommonDAL封装:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Linq.Expressions;
using System.Text; using YX.Model; namespace YX.BLL
{ /// <summary>
/// 基础 dal 类 T 对应数据泛型
/// </summary>
public class CommonDAL<T> : IDisposable where T : class
{
/// <summary>
/// 当前上下文
/// </summary>
DbContext DB; #region 构造函数
public CommonDAL()
{
//默认db为mclentities
this.DB = DBHelper.CreateDB(ConnectionStr.ServiceEntities);
} public CommonDAL(string connName)
{
this.DB = DBHelper.CreateDB(connName);
} public CommonDAL(DbContext db)
{
if (db == null)
{
throw new ArgumentNullException("db");
}
this.DB = db;
} #endregion /// <summary>
/// 当前db
/// </summary>
public DbContext CurrDB
{
get
{
return this.DB;
}
set
{
this.DB = value;
}
} /// <summary>
/// 添加
/// </summary>
/// <param name="t">数据对象</param>
/// <returns>成功否</returns>
public bool Add(T t)
{
try
{
t = DB.Set<T>().Add(t);
return DB.SaveChanges() > ;
}
catch (Exception ex)
{
//添加错误日志
Log.Logger.AddLog(ex.Message, ex);
throw new Exception(ex.Message, ex);
}
} /// <summary>
/// 更新
/// </summary>
/// <param name="t">数据对象</param>
/// <returns>成功否</returns>
public bool Update(T t)
{
try
{
this.DB.Entry<T>(t).State = EntityState.Modified;
return this.DB.SaveChanges() > ;
}
catch (Exception ex)
{
//添加错误日志
Log.Logger.AddLog(ex.Message, ex);
throw new Exception(ex.Message, ex);
}
} /// <summary>
/// 删除
/// </summary>
/// <param name="t">数据对象</param>
/// <returns>成功否</returns>
public bool Delete(T t)
{
try
{
t = DB.Set<T>().Remove(t);
return DB.SaveChanges() > ;
}
catch (Exception ex)
{
//添加错误日志
Log.Logger.AddLog(ex.Message, ex);
throw new Exception(ex.Message, ex);
}
} /// <summary>
/// 返回query
/// </summary>
/// <returns>查询接口</returns>
public IQueryable<T> GetQuery()
{
var query = DB.Set<T>();
return query;
} /// <summary>
/// 根据主键查询
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
//public abstract T Get(Key id); /// <summary>
/// 返回所有值
/// </summary>
/// <returns></returns>
public List<T> GetAll()
{
var dbQuery = this.GetQuery();
return dbQuery.ToList();
} /// <summary>
/// 释放
/// </summary>
public void Dispose()
{
this.CurrDB.Dispose();
}
}
}
DBHelper:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text; namespace YX.BLL
{
/// <summary>
/// 数据上下文创建类
/// </summary>
public class DBHelper
{
/// <summary>
/// 创建上下文db方法
/// </summary>
/// <param name="connName"></param>
/// <returns></returns>
public static DbContext CreateDB(string connName)
{
return new DbContext(connName);
}
}
}
接下来就是在BaseBLL中去调用DAL:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;using YX.Entitys;
using YX.Model.SZR;
using YX.Log; using System.Reflection; namespace YX.BLL.ShenZhouRong
{
public class SZRBaseBLL : BaseBLL
{
/// <summary>
/// 数据操作类
/// </summary>
public CommonDAL<TB_SZR_InterfaceLog> dal; private string _AppID = null;
/// <summary>
/// 当前APPID
/// </summary>
public string CurrentAppID
{
get
{
return this._AppID;
}
set
{
this._AppID = value;
}
}
/// <summary>
/// 构造函数
/// </summary>
public SZRBaseBLL()
{
dal = new CommonDAL<TB_SZR_InterfaceLog>();
} /// <summary>
/// 按 ID 获取
/// </summary>
/// <param name="id">id</param>
/// <returns>数据对象</returns>
public TB_SZR_InterfaceLog GetSingle(int id)
{
return dal.GetQuery().Where(s => s.Id == id).FirstOrDefault();
}
public void Add()
{
Model_11 tss = new Model_11
{
CreateDate = DateTime.Now,
ERROR_CODE = ERROR_CODE,
IDNO = IDNO,
NAME = NAME,
RESULT = RESULT
};
CommonDAL<Model_11> dal = new CommonDAL<Model_11>();
return dal.Add(tss);
}
}
}