首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoMap.AssemblyOf映射整个命名空间

AutoMap.AssemblyOf映射整个命名空间
EN

Stack Overflow用户
提问于 2009-10-21 03:11:47
回答 1查看 1.8K关注 0票数 3

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

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

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

代码语言:javascript
复制
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();
}

和实体类:

代码语言:javascript
复制
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>();
        }
    }
 }
EN

回答 1

Stack Overflow用户

发布于 2009-10-20 19:18:05

这一行:

代码语言:javascript
复制
.Where(t => t.Namespace == "Modules.Business.Entities")

指示FluentNHibernate映射Modules.Business.Entities命名空间内的所有对象。如果只想映射一个特定的类型,可以尝试指定它的名称:

代码语言:javascript
复制
.Where(t => t == typeof(Entity))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1596716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档