Ошибка в автоматическом отображении Nhibernate, поскольку ссылка объекта не установлена для экземпляра

#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.