我完全是一个流利的初学者,我遇到了一个问题,这可能是我自己的错。
我有一个包含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();
}和实体类:
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>();
}
}
}发布于 2009-10-20 19:18:05
这一行:
.Where(t => t.Namespace == "Modules.Business.Entities")指示FluentNHibernate映射Modules.Business.Entities命名空间内的所有对象。如果只想映射一个特定的类型,可以尝试指定它的名称:
.Where(t => t == typeof(Entity))https://stackoverflow.com/questions/1596716
复制相似问题