Ошибка в автоматическом сопоставлении Nhibernate, так как для объекта не задан экземпляр - PullRequest
0 голосов
/ 13 ноября 2011

Я довольно новичок в автоматическом прохождении через ранее использовавшееся отображение 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();

Он вызывает метод фабрики сеанса, например.и там он получает ошибку в быстром отображении для генерации сеансового фактора ите, поскольку

Ссылка на объект не установлена ​​на экземпляр объекта.

1 Ответ

0 голосов
/ 16 ноября 2011

Я думаю, что строка подключения "Royal" отсутствует в appconfig.

...