码迷,mamicode.com
首页 > 其他好文 > 详细

关于在EF中通用方法

时间:2014-11-14 10:41:08      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:io   ar   sp   for   数据   on   bs   ef   as   

在EF中有时需要用到一些通用类,在后端模型和前端模型在某些场合需要模型分离,

例如数据模型和试图模型中用到的增删改功能

  public class DBHelper<V, T>
        where V : class ,new()
        where T : class ,new()
    {


        public Result Update(V Entity)
        {
            using (var db = new DbContext())
            {

                 //此处模型转换
                var model = EntityOperation<T>.Conversion(Entity);
                db.Set<T>().Attach(model);
                db.Entry<T>(model).State = System.Data.Entity.EntityState.Modified;
                return this.SaveChanges(db);
            }
        }
        public Result UpdateForT(T Entity)
        {
            using (var db = new DbContext())
            {
                db.Set<T>().Attach(Entity);
                return this.SaveChanges(db);
            }
        }
    }

转换模型方法

   /// <summary>
        /// 转换一个字段相同的实体
        /// </summary>
        /// <param name="InObject">有值需要转换的实体</param>
        /// <returns>返回转好的 TEntity</returns>
        public static TEntity Conversion(object InObject)
        {
            var _temp = InObject.GetType().GetProperties();
            TEntity entity = new TEntity();
            foreach (var item in _temp)
            {
                object ovj = item.GetValue(InObject, null);
                if (ovj != null)
                {
                    var _obj = entity.GetType().GetProperties().FirstOrDefault(p => p.Name.ToLower() == item.Name.ToLower());
                    if (_obj != null)
                        _obj.SetValue(entity, ovj);
                }
            }
            return entity;
        }

关于在EF中通用方法

标签:io   ar   sp   for   数据   on   bs   ef   as   

原文地址:http://www.cnblogs.com/drwu2009/p/4096435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!