在看一些EF的文章,经常提到POCO这个词,但是,有没有比较详细的说这个POCO是什么意思呢?

POCO是指Plain Old Class Object,也就是最基本的CLRClass,在原先的EF中,实体类通常是从一个基类继承下来的,而且带有大量的属性描述。而POCO则是指最原始的Class,换句话说这个实体的 Class仅仅需要从Object继承即可,不需要从某一个特定的基类继承。主要是配合Code First使用。Cost Frist则是指我们先定义POCO这样的实体class,然后生成数据库。实际上现在也可以使用Entity Framework Power tools将已经存在的数据库反向生成POCO的class(不通过edmx文件)。

以下是stackoverflow中的回答:

Cansomeone define what exactly 'POCO' means? I am encountering the term more andmore often, and I'm wondering if it is only about plain classes or it meanssomething more?

Answer:

"PlainOld C# Object"

Justa normal class, no attributes describing infrastructure concerns or otherresponsibilities that your domain objects shouldn't have.

EDIT - as other answers havestated, it is technically "Plain Old CLR Object" but I, like DavidArno comments, prefer "Plain Old Class Object" to avoid ties tospecific languages or technologies.

TO CLARIFY: In other words, theydon’t derive from some special base class, nor do they return any special typesfor their properties.

Mostpeople have said it - Plain Old CLR Object (as opposed to the earlier POJO -Plain Old Java Object)

The POJO one came out of EJB,which required you to inherit from a specific parent class for things likevalue objects (what you get back from a query in an ORM or similar), so if youever wanted to move from EJB (eg to Spring), you were stuffed.

POJO'sare just classes which dont force inheritance or any attribute markup to makethem "work" in whatever framework you are using.

POCO's are the same, except in.NET.

Generallyit'll be used around ORM's - older (and some current ones) require you toinherit from a specific base class, which ties you to that product. Newer onesdont (nhibernate being the variant I know) - you just make a class, register itwith the ORM, and you are off. Much easier.

本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自:蓝狐软件工作室 » 什么是开发中经常说的'POCO'
本文标题:什么是开发中经常说的'POCO'
本文地址:http://www.lanhusoft.com/Article/309.html

什么是开发中经常说的POCO相关推荐

  1. java ee有哪些工具_JavaEE开发中最常用到的技术和工具汇总

    原标题:JavaEE开发中最常用到的技术和工具汇总 今天千锋广州小编给大家来介绍一下关于目前JavaEE开发中最常用到的技术和工具的介绍,下面我们一起来看一下吧. 项目管理:Ant,项目管理事实上的标 ...

  2. 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...

    几年前,一篇<ASP.NET开发人员经常使用的三十三种代码>非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用.今天重读这篇文章,有感而发,善于总结也是进步,于 ...

  3. 前端开发中的性能那点事

     前端开发中的性能那点事(一)巧用xdebug 前言: 在我们平时的php开发中,一个大的项目经过长时间的积累以后你会发现性能越来越慢,而性能到底消耗在了什么地方,常常是一个令人头疼的问题,funct ...

  4. 开发中新游戏《庞加莱》

    三体题材的游戏,表现三体人在三体星上生活和冒险. 收集水和物器,躲避火焰与巨日,探索遗迹并与巨型生物战斗. 温度会因太阳位置不同而发生变化,进而对环境产生一定影响. 游戏开发中. ---- 2017- ...

  5. Android安卓开发中图片缩放讲解

    安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...

  6. 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  7. Silverlight开发中遇到的几个小问题

    1,程序发布时遇到错误: "Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'Sy ...

  8. Android开发中应避免的重大错误

    by Varun Barad 由Varun Barad Android开发中应避免的重大错误 (Critical mistakes to avoid in Android development) A ...

  9. 实际开发中,有时没有异常发生,但是执行结果不是我们期望的情况,需要手动让事务回滚

    需求:开支单保存 原来的代码: 修改后的代码: Spring控制事务下手动回滚事务的方法: 在实际开发中,有时并没有异常发生,但是由于事务结果未满足具体业务需求,所以我们不得不手动回滚事务! 有如下两 ...

最新文章

  1. 干货丨贝叶斯机器学习前沿进展
  2. linux——第三方软件仓库的搭建
  3. Session丢失,都是CDN惹的祸
  4. boost::static_mutex 的测试程序
  5. 数据合并之concat、append、merge和join
  6. 前端学习(2785):实现导航的基本结构
  7. 带有示例的Python File readline()方法
  8. MapReduce案例(数据中获取最大值TopN)
  9. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- Animator动画状态机...
  10. android小项目数字拼图游戏_Java小项目之:拼图游戏
  11. 11.TCP/IP 详解卷1 --- UDP:用户数据报协议
  12. 安卓虚拟键盘_微软双屏Surface Duo上的安卓应用体验:可瞬间变身笔记本电脑
  13. MULTISIM安装下载
  14. 对话阿里云,后疫情时代数字化的关键词
  15. vue2.0 仿蘑菇街
  16. 将 Keynote 演示文稿导出为 PPT 或其他文件格式
  17. 用户留存率分析 表设计
  18. python练习15:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
  19. vmware worlstation15.5 打开虚拟机报错 :operation inconsistent with current state!
  20. python网站自动答题_python自动登录网站答题-女性时尚流行美容健康娱乐mv-ida网...

热门文章

  1. 设计模式-抽象工厂模式实例(二)
  2. 英文单词按字母顺序排序
  3. 不区分大小写的“包含(字符串)”
  4. modbusCRC 、CRC-CCITT(0xFFFF) 校验
  5. sql语句实现单表省市级连
  6. 【Flutter 学习笔记八】 Flutter plugin not installed; this adds Flutter specific...
  7. 通过QQ号查询对方QQ绑定手机号
  8. KITTI数据集下载及介绍
  9. 交换机综合实验(华为)
  10. iP1000废弃墨水吸收器已满解决方法