Fluent nhibernate AutoMap.AssemblyOf映射整个命名空间

Fluent nhibernate AutoMap.AssemblyOf映射整个命名空间,fluent-nhibernate,mapping,Fluent Nhibernate,Mapping,我是一个流利的初学者,我遇到了一个问题,这可能是我自己的错 我有一个包含3个类的名称空间。实体、EntityVersion和属性。类之间不涉及继承 我尝试只映射实体类,但实际情况是名称空间中的所有类都被映射。我做错了什么 private static ISessionFactory CreateSessionFactory() { return Fluently.Configure() .Database( MsSqlConfigurat

我是一个流利的初学者,我遇到了一个问题,这可能是我自己的错

我有一个包含3个类的名称空间。实体、EntityVersion和属性。类之间不涉及继承

我尝试只映射实体类,但实际情况是名称空间中的所有类都被映射。我做错了什么

private static ISessionFactory CreateSessionFactory()
{
    return Fluently.Configure()

        .Database(
                MsSqlConfiguration.MsSql2005
                .ConnectionString("Data Source=MSCHOPMAN\\SQLEXPRESS;Initial Catalog=framework;Integrated Security=SSPI"))               
        .Mappings(m => 
        {
            m.AutoMappings.Add(
               AutoMap.AssemblyOf<Entity>()
               //.IgnoreBase<Entity>()
               .Where(t => t.Namespace == "Modules.Business.Entities")
            )
            .ExportTo("c:\\temp");
        }
        )

        .ExposeConfiguration(BuildSchema)
        .BuildSessionFactory();
}
私有静态ISessionFactory CreateSessionFactory()
{
流畅地返回。Configure()
.数据库(
MsSqlConfiguration.MsSql2005
.ConnectionString(“数据源=MSCHOPMAN\\SQLEXPRESS;初始目录=框架;集成安全性=SSPI”))
.Mappings(m=>
{
m、 自动映射。添加(
自动映射
//.IgnoreBase()
.Where(t=>t.Namespace==“Modules.Business.Entities”)
)
.ExportTo(“c:\\temp”);
}
)
.ExposeConfiguration(构建架构)
.BuildSessionFactory();
}
以及实体类:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;

using Modules.Data;

namespace Modules.Business.Entities
{
    public class Entity
    {
        public virtual int Id { get; set; }
        public virtual int ParentId { get; set; }
        public virtual int TypeId { get; set; }
        //public virtual IList<EntityVersion> Versions { get; set; }

        public Entity()
        {
            //Versions = new List<EntityVersion>();
        }
    }
 }
使用系统;
使用系统集合;
使用System.Collections.Generic;
使用系统数据;
使用模块。数据;
名称空间模块.Business.Entities
{
公共类实体
{
公共虚拟整数Id{get;set;}
公共虚拟int ParentId{get;set;}
公共虚拟int-TypeId{get;set;}
//公共虚拟IList版本{get;set;}
公共实体()
{
//版本=新列表();
}
}
}
此行:

.Where(t => t.Namespace == "Modules.Business.Entities")
指示FluentNHibernate映射
Modules.Business.Entities
命名空间内的所有对象。如果只想映射特定类型,可以尝试指定其名称:

.Where(t => t == typeof(Entity))

嗨,达林,谢谢你的回答。也许我遗漏了第一行中传递的实体类型的全部要点:AddAssembly表示/用于什么?:)m、 AutoMappings.Add(AutoMap.AssemblyOf).Where(t=>t.Namespace==“Modules.Business.Entities”))表示映射在定义实体类型的程序集中定义的所有类型(希望有意义)。它并不表示映射实体类型。