using nhibernate is there any way to map readonly property in interface

Try:

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

NHibernate Read Only Property Mapping

and if you use Fluent:

Mapping a read-only property with no setter using Fluent NHibernate

I think this can be useful too:

How to map an interface in nhibernate?

updated

I think a first step is correct your code. Then try to post your mapping file or fluent configuration. We cannot help you if it is not clear what you want to achieve.


You map classes in NHibernate not interfaces. As others have pointed out, you are confusing the readonly keyword with a read-only property: the readonly keyword means that the field can only be set in the constructor. A read-only property has no or a private setter.

But I think you can achieve what you want using this:

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 uses reflection so it is able to set the Name property, but it is read-only in your application.

Tags:

C#

Nhibernate