我最近开始使用NHibernate,总的来说很喜欢它。
直到遇到需要序列化为XML并返回的问题。
我有一个有多对多关系的类,所以在父类中有一个IList来保存子对象列表。
Class parentClass{
IList<childClass> childList;
string varA;
string varB;
}
我需要能够将其序列化为XML并返回,但显然IList阻止我这样做,因为NHibernate想要控制IList的具体实现,在这种情况下使用Bag。
理想情况下,我希望避免使用单独的DTO来替换列表,因为我使用NHibernate的主要动机是能够将它与POCO一起使用,而不必为它制作一个讨厌的框架。
我知道能够使用ISerializable控制序列化过程,但是这似乎也没有首先使用NHibernate来降低复杂性。
此外,XML需要保持“简单”,因为它用于与第三方互操作。
解决此约束的最佳方法是什么?
谢谢!
答案 0 :(得分:-1)
请参阅:
C# Castle ActiveRecord: How to elegantly (XML) serialize ActiveRecord objects?
How do I serialize all properties of an NHibernate-mapped object?
NHibernate and WCF Serialization(Unidirectional)
JSON.NET and nHibernate Lazy Loading of Collections
Which .NET JSON serializers can deal with NHibernate proxy objects?
DTOs vs Serializing Persisted Entities
Returning NHibernate mapping classes from WCF services
底线:使用DTO。