Kei*_*las 17 c# nhibernate castle-activerecord
假设编写nhibernate映射文件不是一个大问题....或者使用属性污染域对象也不是一个大问题....
优缺点都有什么?
有什么基本的技术问题吗?什么往往会影响人们的选择?
不太清楚所有的权衡是什么.
Nei*_*itt 21
AR最大的优势在于它为您提供了现成的存储库,并为您提供会话管理.无论是中ActiveRecordBase<T>和ActiveRecordMediator<T>的,你会已经结束了NHibernate的下组装自己的礼物.避免XML映射是另一个优点.AR映射属性易于使用,但又足够灵活,甚至可以映射相当"遗留"的数据库.
AR的最大特点是它积极鼓励你错误地思考NHibernate.也就是说,因为默认会话管理是每次调用会话,所以您会习惯于持久化对象已断开连接,并且Save()在发生更改时必须为d.这不是NHibernate应该如何工作的 - 通常你有每个工作单元的会话或请求或线程,并且对象在会话的生命周期中保持连接,因此更改会自动保持.如果你开始使用AR,然后弄清楚你需要切换到每个请求的会话以使延迟加载工作 - 这在文档中没有很好地解释 - 当你没有期待的对象时,你会得到一个令人讨厌的惊喜当会话刷新时保存.
请记住,Castle团队将AR作为Castle Monorail的补充产品,这是一个类似于Rails的.NET框架.它的设计考虑到了这种用途.它不能很好地适应更分层,分离的设计.
使用它是什么,但不要把它当作NHibernate的快捷方式.如果你想使用NH但是避免映射文件,请使用NHibernate Attributes或更好的Fluent NHibernate.
tob*_*ris 15
我发现ActiveRecord是一个很好的工具包,非常适合我用它的小/中项目.像Rails一样,它为您做出了许多重要的决定,这可以让您专注于解决问题.
在我看来,职业和缺点是:
优点
缺点
总的来说,我真的很喜欢ActiveRecord,它总是节省时间,主要是因为我似乎乐于接受图书馆中的决策和工具,并且随后花更多的时间专注于手头的问题.
我会尝试一些项目,看看你的想法.
| 归档时间: |
|
| 查看次数: |
4178 次 |
| 最近记录: |