日期:2014-05-17  浏览次数:20822 次

有没有人对Entity Framework 4.x进行再次封装?

虽然EF自己已经封装的非常好,非常方便。但有没有人想过给它再次封装,以更简便的集中调用呢?

比如Add(),Updata(),Delete(),Get(),Find()以及存储过程和事务。

------解决方案--------------------
我们用的就是楼主所说的再次封装的。我们把每个表或者视图再次细化,比如
/// <summary>
/// 获取列表
/// </summary>
/// <param name="edm">DataContext</param>
/// <param name="where">查询条件,如:"it.id=@id" (其中it为固定格式) 如果无条件,则为空,</param>
/// <param name="param">查询参数,与where统一</param>
/// <returns></returns>
public IQueryable<backup_sys_company> GetList(OrganizationEntities edm, string where, ObjectParameter[] param)
{
IQueryable<backup_sys_company> rs;
if (string.IsNullOrEmpty(where))
{
string sql = "select value it from backup_sys_company as it ";
rs = edm.CreateQuery<backup_sys_company>(sql);
}
else
{
string sql = "select value it from backup_sys_company as it where " + where;
rs = edm.CreateQuery<backup_sys_company>(sql, param);
}
return rs;
}

或者添加
/// <summary>
/// 新增记录,当有自增字段时,新增记录的标识号,无自增字段时返回1,失败返回0
/// </summary>
/// <param name="edm">DataContext</param>
/// <param name="entity">新增的实体</param>
/// <returns></returns>
public int Add(OrganizationEntities edm, backup_sys_company entity)
{
edm.AddTobackup_sys_company(entity);
int rs = edm.SaveChanges();
if (rs == 1)
{
return entity.id; 
}
else
{
return 0;
}
}
这些的执行参数中必须有实体类参数,当前类是backup_sys_company_ORM。
------解决方案--------------------
帮顶看高手~