Nhibernate自动化时出错,因为对象引用未设置为实例

时间:2011-11-12 20:35:21

标签: fluent-nhibernate automapper

我很自动通过先前使用过nhibernate映射。这是我的会议工厂

 return Fluently.Configure()
                     .Database(
                         MsSqlConfiguration.MsSql2008.ConnectionString(
                             ConfigurationManager.ConnectionStrings["Royal"].ConnectionString))
                     .Mappings(m =>
                               m.AutoMappings
                                   .Add(AutoMap.AssemblyOf<EmployeeLogin>().UseOverridesFromAssemblyOf
                                            <EmployeeLoginMap>()
                                            .Conventions.Setup(x => x.Add<PrimarykeyConvention>( new PrimarykeyConvention()))
                                   ))
                     .BuildSessionFactory();

这是我的EmployeeLoginMap类,用于映射Employee_Login表

public class EmployeeLoginMap : IAutoMappingOverride<EmployeeLogin>
{
    public void Override(AutoMapping<EmployeeLogin> mapping)
    {
        mapping.Table("employee_login");
        mapping.Id(x => x.EmpId, "EmpId");
    }
}

这是自动化的主要关键惯例:

public class PrimarykeyConvention : IIdConvention
{
    public void Apply(IIdentityInstance target)
    {
        target.Column(target.EntityType.Name + "Id");
        target.GeneratedBy.Assigned();
    }
}

这是我的EmployeeLogin Domain

 public class EmployeeLogin
{
    public String EmpId { get; set; }
    public String Type { get; set; }
    public String Name { get; set; }
    public String Password { get; set; }
    public String Dob { get; set; }
    public String Phone { get; set; }
    public String Email { get; set; }
    public String BranchCode { get; set; }
    public String EntryPerm { get; set; }
    public String LastModified { get; set; }
    public String ModifiedBy { get; set; }
}

问题在于,每当我尝试使用isession = GetSession();

进行访问时

例如,它调用sessionfactory方法。并且它在流畅的映射中出现错误,以生成sessionfactory iteself为

  

对象引用未设置为对象的实例。

1 个答案:

答案 0 :(得分:0)

我的猜测是appconfig中缺少连接字符串“Royal”。