У меня есть два класса. Оба класса имеют схожую структуру, поскольку оба они имеют отношение «многие ко многим». Но, как ни странно, второй класс вызывает LazyInitializationException
. Я не знаю, почему? Оба извлекают данные из промежуточной таблицы, но почему второй класс производит ошибку?NHibernate LazyInitializationException возникает в одном классе, а не в другом
public class TaskMap : VersionedClassMap<Task>
{
public TaskMap()
{
Id(x => x.TaskId);
Map(x => x.Subject).Not.Nullable();
Map(x => x.StartDate).Nullable();
Map(x => x.DueDate).Nullable();
Map(x => x.DateCompleted).Nullable();
References(x => x.Status, "StatusId");
References(x => x.Priority, "PriorityId");
References(x => x.CreatedBy, "CreatedUserId");
HasManyToMany(x => x.Users)
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
.Table("TaskUser")
.ParentKeyColumn("TaskId")
.ChildKeyColumn("UserId");
HasManyToMany(x => x.Categories)
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
.Table("TaskCategory")
.ParentKeyColumn("TaskId")
.ChildKeyColumn("CategoryId");
}
}
и
public class LocationMap: VersionedClassMap<Location>
{
public LocationMap()
{
Id(x => x.LocationId);
Map(x => x.Name).Not.Nullable();
Map(x => x.Address).Nullable();
Map(x => x.City).Nullable();
Map(x => x.State).Nullable();
Map(x => x.Country).Nullable();
Map(x => x.Pincode).Nullable();
HasManyToMany(x => x.Departments)
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
.Table("LocationDepartment")
.ParentKeyColumn("LocationId")
.ChildKeyColumn("DepartmentId"); //.Fetch.Join(); Adding this removes the error
}
}
EDIT:
Вот link для проекта.
Поделитесь всем своим решением, как только я доберусь до офиса в понедельник. Пожалуйста, помогите мне решить эту проблему. –
Я добавил исходный код. Не могли бы вы рассказать мне, что происходит. –
Существует много кода. Куда это исключение? Как воспроизвести проблему? –