zoukankan      html  css  js  c++  java
  • 关于在EF中通用方法

    在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;
            }

  • 相关阅读:
    php中的短标签 太坑人了
    <转>让SVN用户能够修改自身密码的PHP页面
    配置Apache2 管理 SVN
    <转>Java 理论与实践: 正确使用 Volatile 变量
    <转>java中静态方法和非静态方法的存储
    分享:将业务系统页面嵌入到统一平台中(简易版)
    权限管理系统之字典(代码)管理
    权限管理系统之模块管理
    权限管理系统之用户管理
    轻松搞定Struts 2:三步走上手小入门
  • 原文地址:https://www.cnblogs.com/drwu2009/p/4096435.html
Copyright © 2011-2022 走看看