当前位置:  开发笔记 > 程序员 > 正文

NHibernate类作为数据契约

如何解决《NHibernate类作为数据契约》经验,为你挑选了1个好方法。

我通过WCF服务公开了一些CRUD方法,因为一些数据对象通过NHibernate持久保存在数据库中.将NHibernate类用作数据契约是一种好方法,还是更好地将它们包装起来或用其他一些数据契约替换它们?你的方法是什么?



1> joshua.ewer..:

我们的团队经历了几个月的争论这个设计点,所以我有很多链接可以分享;-)

简短回答: 您应该"从"NHibernate类转换为域模型.

答案长:我认为答案就是原则问题.如果你曾经想成为可互操作的,你应该不会为您的DTO(使用数据集我爱这个Hanselman的职位).我不是说这从来不是一个好主意; 显然,人们已经取得了成功.只要知道你正在偷工减料,这是一个冒险的主张.

如果您可以完全控制将数据推入的类,则可以构建一个不错的域模型,并将NHibernate数据映射到这些类中.你很可能会遇到严重的问题,因为IList <>(映射到的)不可序列化.您必须编写自己的序列化程序,或者使用NetDataContractSerializer之类的东西,但是会失去互操作性.

您需要测量构建一些包装类所涉及的工作量,以及它们之间的转换,但是您可以完全灵活地使用您的域模型.然后,您就可以像NHibernate地图和对象一样(就像我们所做的那样)做代码生成.然后,您的数据合同将作为数据的抽象,就像它们应该的那样.

PS您可能希望了解ADO.NET数据服务,这是一种公开数据的RESTful方式,此时,它似乎是公开数据的最具互操作性的选择.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有