0
我有一個很長時間的NHibernate的問題,我解決了非最佳的方式/解決方法。序列化DTO的WCF
首先,我使用WCF REST與我的客戶端應用程序進行通信。如您所知,序列化持久實體並不是最佳實踐,並且總是會導致其他問題。因此,我總是使用NHibernates變形金剛將我的實體映射到DTO。問題是我有更復雜的實體來使用變形金剛來轉換它們。
如何使用變形器或其他任何nhibernate功能將子實體映射到子dto?
注意:我不想使用第三方,如Automapper。
這些是我想要映射的實體和DTO。變量名稱彼此完全相同。
實體類:
的EntityType
public class crmEntityType : EntityModel<crmEntityType>
{
public crmEntityType()
{
Association = new List<crmEntityType>();
Fields = new List<crmCustomField>();
}
public virtual int ID { get; set; }
public virtual string Title { get; set; }
public virtual ICollection<crmEntityType> Associations { get; set; }
public virtual ICollection<crmCustomField> Fields { get; set; }
}
CustomFields
public class crmCustomField : EntityModel<crmCustomField>
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual crmEntityType EntityType { get; set; }
}
DTO的
EntityTypeDTO
[DataContract]
public class EntityTypeDTO
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public IList<CustomFieldDTO> Fields { get; set; }
[DataMember]
public int[] Associations { get; set; }
}
CustomFieldDTO
[DataContract]
public class CustomFieldDTO
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public int EntityType { get; set; }
[DataMember]
public int FieldType { get; set; }
}
我編輯了你的標題。請參見「[應的問題包括‘標籤’,在他們的頭銜?(http://meta.stackexchange.com/questions/19190/)」,這裏的共識是「不,他們不應該」。 –
好的,很抱歉,謝謝你糾正它。 :) – iboware