11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

对象关系映射和透明持久化

  • 2013-09-01
  • 本文字数:539 字

    阅读完需:约 2 分钟

Julie Lerman 最近注意到,Entity Framework 可以使用具有私有构造函数和私有属性setter 方法的类

在Julie 发表的测试中,读者可以看到,Entity Framework(EF)能够为拥有私有setter 方法的属性赋值及调用私有构造函数,而且过程比较简单。EF 通过引用 EntityProxyFactory 类和其它相关类实现这一过程,但关键是综合运用了反射和 IL Emit 方法。NHibernate 更进一步,它甚至支持存取私有属性(这点在设计EF 时也已经讨论过)。不过,目前两者均需要开发人员提供默认构造函数(即使是非公共的)。

Julie 说,这个发展方向很好,因为它可以促进透明持久化

从架构上说,Entity Framework 和 NHibernate 两者均支持使用有助于实现透明持久化的模式——

相应地,Entity framework 有类 DBSet DBContext ,而 NHibernate 有 QueryOver api 和类 SessionContext 。另一方面,为了支持延迟加载,目前两者也都遵循违背这一原则的“虚拟代理(Virtual Proxy)” 模式(需要把属性标记为virtual)。

一般来说,透明持久化是个很好的做法;例如,与使用“活动记录(Active Record)” 模式不同,它将业务规则与持久化逻辑分离。由此,整个设计更简洁,测试更容易。

查看英文原文: ORMs And Persistence Ignorance

2013-09-01 23:071615
用户头像

发布了 256 篇内容, 共 74.9 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

Zebec地平线节点运营计划,将推动流支付赛道发展进程

石头财经

C语言中的内存模型

C++后台开发

内存模型 C语言 C/C++ linux开发 C++开发

【Nacos源码之配置管理 九】客户端获取配置数据的流程

石臻臻的杂货铺

nacos 10月月更

具有资质的昆明等保测评公司新名单看这里!

行云管家

等保 堡垒机 等级保护

实时云渲染的关键技术是什么?

Finovy Cloud

人工智能 云渲染 实时渲染

Surpass Day——Java 接口在开发中的作用、关于Object类、内部类

胖虎不秃头

Java 10月月更 se

【一Go到底】第九天---进制

指剑

Go golang 10月月更

网络安全漏洞分析之远程代码执行

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

ESP32-C3 应用程序的启动流程

矜辰所致

ESP32-C3 10月月更 ESP-IDF

两将军问题和TCP三次握手

有态度的马甲

TCP协议 两将军问题

智能合约系统开发Web3.0实现核心

薇電13242772558

智能合约

【iOS逆向】某运营商签名算法分析

小陈

逆向思维 逆向 iOS逆向 逆向分析

如何快速打造BI大屏进行数据赋能

力软低代码开发平台

【荣耀帐号服务FAQ】AuthorizationCode有效期是多久?

荣耀开发者服务平台

手机 服务 安卓 荣耀 honor

使用最小花费爬楼梯

掘金安东尼

算法 10月月更

zookeeper-四字监控命令和工具

zarmnosaj

10月月更

DAG 任务调度与 go-streams 结合的应用实践

开务数据库

如何从InfluxDB/OpenTSDB无缝连接到TDengine

TDengine

数据库 tdengine 开源 时序数据库

Surpass Day——IntelliJ IDEA和eclipse的使用、super关键字

胖虎不秃头

Java 10月月更 se

如何低成本实现客户服务自动化?

Baklib

leetcode 145. Binary Tree Postorder Traversal 二叉树的后序遍历 (中等)

okokabcd

LeetCode 数据结构与算法

Vue3入门指北(十二)模板引用

Augus

Vue 3 10月月更

Vue网站自动提交百度链接

源字节1号

软件开发 后端开发 Vue网站

Linux性能问题分析流程与性能优化思路

五分钟学大数据

Linux 10月月更

Surpass Day——Java 抽象类和接口

胖虎不秃头

Java 10月月更 se

Zebec即将推出公链并开放节点申请,潜力几何?

西柚子

GitLab + Jenkins + Harbor 工具链快速落地指南

胡说云原生

DevOps gitlab cicd Harbor jenkins

数据结构学习,栈篇(顺序栈)

IC00

数据结构 算法 学习笔记 10月月更

Flowable 中 ReceiveTask 怎么玩?

江南一点雨

Java springboot workflow flowable JavaEE

【愚公系列】2022年10月 Go教学课程 023-Go容器之列表

愚公搬代码

10月月更

对象关系映射和透明持久化_.NET_Roopesh Shenoy_InfoQ精选文章