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

posted on 2014-11-14 09:15 浪荡De逍遥哥 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/drwu2009/p/4096435.html

关于在EF中通用方法相关推荐

  1. 【100个 Unity实用技能】| Unity将本地图片文件显示到Image组件中 通用方法整理

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  2. 如何从C#中的通用方法返回NULL?

    我有一个使用此(虚拟)代码的通用方法(是的,我知道IList具有谓词,但是我的代码未使用IList但使用了其他集合,无论如何这与问题无关...) static T FindThing<T> ...

  3. 窗体内元素遍历-通用方法(DevExpress 中BarManager的遍历)

    窗体内元素遍历-通用方法(DevExpress 中BarManager的遍历) 需求:WinForm窗体中对于各个元素进行遍历设置. 本身因为程序绝大部分功能已经开发完毕,但是权限控制没有追加,在后续 ...

  4. VB的一些项目中常用的通用方法-一般用于验证类

    1.VB的一些项目中常用的通用方法: ' 设置校验键盘输入值,数字 Public Function kyd(key As Integer) As Integer '20060728 Dim mycha ...

  5. Django项目中集成富文本编辑器的通用方法,适合KindEditor,xhEditor,NicEditor,wymeditor等 .

    首先,请参考我以前写的一篇博客:如何把nicEditor集成到django中使用 http://blog.csdn.net/huyoo/article/details/4382317 这篇文章中的做法 ...

  6. 编写高质量代码:改善Java程序的151个建议 (第1章 Java开发中通用的方法和准则)

    第1章 Java开发中通用的方法和准则 The reasonable man adapts himself to the world;the unreasonable one persists in ...

  7. 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)...

    建议6:覆写变长方法也循规蹈矩 在JAVA中,子类覆写父类的中的方法很常见,这样做既可以修正bug,也可以提供扩展的业务功能支持,同时还符合开闭原则(Open-Closed Principle). 符 ...

  8. 转载-----编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)...

    阅读目录 建议6:覆写变长方法也循规蹈矩 建议7:警惕自增的陷阱 建议8:不要让旧语法困扰你 建议9:少用静态导入 建议10:不要在本类中覆盖静态导入的变量和方法 回到顶部 建议6:覆写变长方法也循规 ...

  9. 【面向对象编程】(4) 类的继承,重构父类中的方法

    各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...

  10. 终于,「最近邻搜索」有通用方法了

    作者:Kevin Hartnett 编译:Bing 如果你打算开一家咖啡馆,你一定想知道:"附近最近的一家咖啡馆在哪?"了解这些信息有助于应对商业竞争. 这种现象是计算机科学中广泛 ...

最新文章

  1. 4. 编程规范和编程安全指南--go语言
  2. python考试题库 pcap_使用Python修改PCAP
  3. iOS自定义转场动画实战讲解
  4. 快捷键截屏_QQ的Ctrl+Alt+A快捷键除了截屏,竟然还有这么多好用的功能!
  5. 查看计算机CPU、内存使用情况
  6. BZOJ1061: [Noi2008]志愿者招募
  7. SAP API开发方法大全
  8. php 汉字分割,php支持中文字符串分割的函数
  9. 二叉线索树的线索化以及遍历
  10. 利用VB函数Dir()实现递归搜索目录
  11. 173.二叉搜索树迭代器
  12. RF修改服务器设置,3-RF服务端程序安装手册V1.0(7页)-原创力文档
  13. thinkphp5项目--个人博客(五)
  14. 用R语言看武汉市武昌区房租出租情况
  15. 变量修改器(modifier)
  16. [原]我和她同居的日子 一
  17. Mac--技巧:修复“闪烁的问号”错误提示
  18. 力天创见人脸识别客流统计方案
  19. 关于matlab中的diag函数(矩阵对角元素的提取和创建对角阵)
  20. 2021年中国房地产行业发展现状分析(附房地产开发投资额、房屋施工面积、商品房销售情况及企业排名统计)[图]

热门文章

  1. 面试题--------5、==与equals的区别
  2. html中怎么点按钮切换图片,如何只用css实现点击按钮切换图片
  3. bigdecimal js 判断等于0_Js BigDecimal实现精确加减乘除运算的方法
  4. 【渝粤教育】国家开放大学2018年春季 8668-21T汽车涂装技术(A) 参考试题
  5. 【sklearn第四讲】数据集变换
  6. 知乎上的48条神回复,针针见血
  7. 【转】7个顶级心理预言
  8. Codeforces Round #518 (Div. 2) B LCM
  9. JAVA学习笔记(五)
  10. 老男孩大趴会笔记分享