私は2つのクラスを持っています。どちらのクラスも、多対多の関係を持つという点で類似した構造を持っています。しかし、奇妙なことに、2 番目のクラスがLazyInitializationException
. 理由がわからない?どちらも中間テーブルからデータを取得していますが、なぜ 2 番目のクラスだけがエラーを生成しているのでしょうか?
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
}
}
編集:
プロジェクトのリンクはこちらです。