Вы отображаете классы в NHibernate, а не интерфейсы.Как уже отмечали другие, вы путаете ключевое слово readonly со свойством только для чтения: ключевое слово readonly означает, что поле может быть установлено только в конструкторе.Свойство только для чтения не имеет или имеет частный установщик.
Но я думаю, что вы можете достичь того, что вы хотите, используя это:
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 использует отражение, поэтому он может установить имясвойство, но оно доступно только для чтения в вашем приложении.