第一种,效率较高,也是很多开源项目用的方法,使用了贬型
第二种,比较基础,安全性比较高,讲究面向接口的编程,我所以实体对象都继承自统一的接口
    #region 数据底层操作架构一
    /// <summary>
    /// 用户实体
    /// </summary>
    public class User
    {
        public string UserName { get; set; }
        public int Age { get; set; }
    }
 
    public class UserRepository : IRepository<User>
    {
 
        #region IRepository<User> Members
 
        public User Get(object id)
        {
            User user = new User { };
            return user;
        }
 
        public IQueryable<User> GetList()
        {
            throw new NotImplementedException();
        }
 
        #endregion
    }
 
    /// <summary>
    /// 数据操作统一接口,它提供一个贬型作为参数,但要求贬型必须是类
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IRepository<T> where T : class
    {
        /// <summary>
        /// 获取实体
        /// </summary>
        /// <param name="id">主键</param>
        /// <returns></returns>
        T Get(object id);
        /// <summary>
        /// 得到列表
        /// </summary>
        /// <returns></returns>
        IQueryable<T> GetList();
    }
    #endregion
 
    #region 数据底层操作架构二
    class User2 : IDataEntity
    {
        public string UserName { get; set; }
        public int Age { get; set; }
    }
    /// <summary>
    /// 数据实体统一接口
    /// </summary>
    public interface IDataEntity
    {
    }
    /// <summary>
    /// 数据操作统一接口
    /// </summary>
    public interface IRepository2
    {
        /// <summary>
        /// 获取实体
        /// </summary>
        /// <param name="id">主键</param>
        /// <returns></returns>
        IDataEntity Get(object id);
        /// <summary>
        /// 得到列表
        /// </summary>
        /// <returns></returns>
        IQueryable<IDataEntity> GetList();
    }
    public class User2Repository : IRepository2
    {
 
        #region IRepository2 Members
 
        public IDataEntity Get(object id)
        {
            throw new NotImplementedException();
        }
 
        public IQueryable<IDataEntity> GetList()
        {
            throw new NotImplementedException();
        }
 
        #endregion
    }
    #endregion

两种底层数据层操作时的架构方式,你喜欢那种?相关推荐

  1. java按空格分字符串,两种用空格分隔的java字符串的方式

    两种用空格分隔的java字符串的方式 两种方式: 1. String str = "123 456 789 111"; String [] strArray = str.split ...

  2. EF中Add()和Attach()两种添加数据方法的区别

    最近在开发一个项目,在实现某个模块数据的插入操作时(底层数据库的交互采用的是EF),发现无论如何数据都不能插入成功,把数据拷贝出来放到数据库中执行Sql语句时却能正确插入,下面给出代码片段 publi ...

  3. 解码中的AnnexB和avcC两种分割数据方式

    目前 H.264 流行的包装方式有两种,一种叫做 AnnexB,一种叫做 avcC.对于这两种格式,各家的支持程度也不太一样,例如,Android 硬解码 MediaCodec 只接受 AnnexB ...

  4. android打开视频噔_如何运行两种游戏数据包(视频教程)

    视频教程 游戏下好进入ZArchiver找到游戏 游戏在BaiduNetdisk文件夹里点进去 解压游戏 然后看视频教程. 第一种Android数据包方法 解压软件:ZArchiver  链接:htt ...

  5. HashMap两种遍历数据的方式

    HashMap的遍历有两种方式,一种是entrySet的方式,另外一种是keySet的方式. 第一种利用entrySet的方式: Map map = new HashMap(); Iterator i ...

  6. centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)[连载之电子商务系统架构]...

    centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录) 出处:http://jimmyli.blog.51cto.com/我站在巨人肩膀上Jimmy Li 作者:Ji ...

  7. python语言的两种注释方法_python编程时添加中文注释的方法

    python编程时添加中文注释的方法 发布时间:2020-08-24 17:09:52 来源:亿速云 阅读:77 作者:小新 这篇文章主要介绍python编程时添加中文注释的方法,文中介绍的非常详细, ...

  8. Google Earth Engine(GEE)——NASA 和UCSB对比两种降水数据的降水差异分析

    本文需要以下几个步骤: 第 1 步:选择您的区域并导入数据 第 2 步:筛选感兴趣的期间 第 3 步:计算平均降雨量 第 4 步:将数据添加到他们的地图 数据1:GPM: Global Precipi ...

  9. 在解析完Excel表格之后,将每一行数据入库操作时,加入进度条,提示进度展示

    //后台Action中的代码 /*** 解析处理Excel并入库*/ public void inputExcel() {//....前边的解析过程和入库过程就不写了//...只要注意没有数据格式问题 ...

最新文章

  1. 小波变换教程(1):基本原理
  2. python对列表进行去重_Python对列表去重的4种方法
  3. Godaddy如何导入导出MSSQL数据库
  4. Linux网络相关知识
  5. 利用HttpRequester进行接口测试
  6. fork+exit+php,php实现简单的守护进程创建、开启与关闭操作
  7. leetcode910. 最小差值 II(贪心)
  8. 官宣!组建新“电子科技大学”、“航空航天大学”!
  9. linux防火墙服务关闭,Linux防火墙(firewall)的开启与关闭
  10. 2020年中国林业有害生物发生及防治面积统计情况,林业有害生物防控措施工作的开展刻不容缓「图」
  11. Word文件忘记保存,恢复文件信息的方法
  12. 如何快速切换各种pip源
  13. 仅有几个分布点,绘制物种的分布图
  14. Android-再次解读萤石云视频
  15. win10计算机 需要新应用,解决win10应用商店提示“需要新应用打开此ms-windows-store”的步骤...
  16. 知乎高赞:有哪些高逼格的公众号值得推荐
  17. 2016年度星级专利代理机构名单排名
  18. 计算机简史,硬件组成及基本原理
  19. 中职计算机基础微课,微课在中职“计算机应用基础”课程教学中的应用探讨_优秀论文...
  20. 从知识直播和创新活动中,看搜狐的内容“新”路

热门文章

  1. SNMP系统信息获取工具onesixtyone
  2. Kali Linux 安全渗透教程第五更1.4 安装Kali Linux
  3. ue4 改变枢轴位置_【UE4地形】轻松实现UE4自动地貌和自动植被分布
  4. mysql去除输入的字符串中的中文_Sql得到(去除)字符串中所有汉字,字母,数字的函数...
  5. Python的list中的选取范围
  6. java线程能做什么_java中的多线程能做什么 ?基本作用能说下吗?
  7. unity 编辑器存档_Unity教程 | 自制简易的游戏存档系统
  8. ERPLAB中文教程:ERPLAB安装与添加通道
  9. JStorm与Storm源码分析(六)--收集器 IOutputCollector 、OutputCollector
  10. C++程序员如何入门Unreal Engine 4