我很自动通过先前使用过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为
对象引用未设置为对象的实例。
答案 0 :(得分:0)
我的猜测是appconfig中缺少连接字符串“Royal”。