#fluent-nhibernate #automapper
#свободно-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
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 . и там он получает ошибку в fluent mapping для генерации самого sessionfactory как
Ссылка на объект не установлена для экземпляра объекта.
Комментарии:
1. полная трассировка стека очень помогла бы, но я предполагаю, что строка подключения «Royal» отсутствует в appconfig
2. да, это была проблема, о которой я догадался. это оказалось правдой… спасибо 1 за ваш комментарий
Ответ №1:
Я предполагаю, что строка подключения «Royal» отсутствует в appconfig.