Fluent NH实体名称中的Custom Id列

时间:2010-01-03 04:59:35

标签: nhibernate fluent-nhibernate s#arp-architecture automapping

我在遗留数据库上使用S#arp架构和Fluent Nhibernate和Automapper。

其中一个表的id列与Automapping约定不同,因此我试图覆盖它而没有成功。我最终得到了这个错误

  

FluentNHibernate.Cfg.FluentConfigurationException   :无效或不完整   创建时使用配置   一个SessionFactory。校验   PotentialReasons集合,和   InnerException以获取更多细节。

     
      
  • 未配置数据库   通过数据库方法。
  •   
     
     

FluentNHibernate.Cfg.FluentConfigurationException   :无效或不完整   创建时使用配置   一个SessionFactory。校验   PotentialReasons集合,和   InnerException以获取更多细节。

     
      
  • 未配置数据库   通过数据库方法。

         

    ---- NHibernate.MappingException:   (XmlDocument)(3,6):XML验证   错误:元素'class'   namespace'瓮:nhibernate-mapping-2.2'   有无效的子元素'属性'   在命名空间   '瓮:NHibernate的映射-2.2'。清单   可能的元素:'meta,   subselect,cache,synchronize,   评论,tuplizer,id,composite-id'   在命名空间   '瓮:NHibernate的映射-2.2'。 ----   System.Xml.Schema.XmlSchemaValidationException   :名称空间中的元素“类”   'urn:nhibernate-mapping-2.2'有   无效的子元素'property'   命名空间   '瓮:NHibernate的映射-2.2'。清单   可能的元素:'meta,   subselect,cache,synchronize,   评论,tuplizer,id,composite-id'   在命名空间   '瓮:NHibernate的映射-2.2'。

  •   

如何使用Id自动播放器约定并通过覆盖功能将我的自定义列设置为ID?

注意: 这仅适用于一个实体。我不想改变一般的id映射惯例
这是我当前的覆盖功能

  public class AuthMap : IAutoMappingOverride<Auth>
  {
    public void Override(AutoMapping<Auth> mapping)
    {
      mapping.Table("x_auth");
      mapping.Map(x => x.Id, "user_id");
      mapping.Map(x => x.SessId, "sess_id");
    }
  }

1 个答案:

答案 0 :(得分:2)

想通了:

将其用作

mapping.Id(x => x.Id).Column("user_id");