1

Lorsque vous essayez de mapper l'erreur est comme - "Références d'association unmapped class: System.Object"?Comment faire pour mapper le champ de type d'objet dans Nhibernate Auto Mapping

ma classe comme

public partial class MessageIdentifier 
{ 
    pubic virtual int ID {get;set;} 
    public virtual object Item {get;set;} 
} 

et convention est

public class MyUsertypeConvention : IPropertyConvention 
{ 
    public void Apply(IPropertyInstance instance) 
    { 
     if (instance.Type.Name == "Object") 
      instance.CustomType<string>(); 
    } 
} 

Veuillez indiquer comment la carte

Répondre

1

En tant que simple (rapide, naïve) solution - Je suggère de créer et mappez la propriété réelle string. Et puis laissez votre setter et getter(ou d'un AOP ou de l'auditeur) faire le "à/de la conversion de chaîne":

public partial class MessageIdentifier 
{ 
    pubic virtual int ID {get;set;} 
    public virtual object Item 
    { 
     get { return ... my conversion from string; } 
     set { ItemString = ...my conversion to string ;} 
    } 
    public virtual string ItemString {get;set;} 
} 

Un intelligent et préféré (mais un peu plus difficile) est de créer CustomType - qui va cacher cette conversion et soutenir REUSE. Vérifiez par exemple ici

0

Pas de réponse satisfaisante. cela ne fonctionne pas avec la classe est générée à partir de xsd en utilisant XML.

public partial class MessageIdentifier 
{ 
    pubic virtual int ID {get;set;} 
    private object itemField; 
    public object Item 
    { 
     get 
     { 
      return this.itemField; 
     } 
     set 
     { 
      this.itemField = value; 
     } 
    } 
    } 

Plz fournir réponse à senerio ci-dessus