我在遗留数据库上使用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");
}
}
答案 0 :(得分:2)
想通了:
将其用作
mapping.Id(x => x.Id).Column("user_id");