usando nhibernate c'è un modo per mappare la proprietà di sola lettura nell'interfaccia

usando nhibernate c'è un modo per mappare la proprietà di sola lettura nell'interfaccia

Prova:

<property name="Name" type="string" access="readonly"/>

NHibernate Mappatura proprietà di sola lettura

e se usi Fluent:

Mappatura di una proprietà di sola lettura senza setter utilizzando Fluent NHibernate

Penso che anche questo possa essere utile:

Come mappare un'interfaccia in nhibernate?

aggiornato

Penso che un primo passo sia correggere il codice. Quindi prova a pubblicare il file di mappatura o la configurazione fluente. Non possiamo aiutarti se non è chiaro cosa vuoi ottenere.


Mappa le classi in NHibernate non le interfacce. Come altri hanno sottolineato, stai confondendo la parola chiave readonly con una proprietà di sola lettura:la parola chiave readonly significa che il campo può essere impostato solo nel costruttore. Una proprietà di sola lettura non ha o ha un setter privato.

Ma penso che tu possa ottenere ciò che desideri usando questo:

public interface IEntity 
{
    string Name { get; } 
}

public class Entity : IEntity
{
    public string Name { get; private set; }
}

public class EntityMap : ClassMap<Entity>
{
    public EntityMap()
    {
        Map(x => x.Name);
    }
}

NHibernate usa la riflessione quindi è in grado di impostare la proprietà Name, ma è di sola lettura nella tua applicazione.