Я получаю эту ошибку, и мне интересно, есть ли у кого-нибудь идеи, как ее отладить.
Спасибо
Инициализация [GL.Objects.Profile`1 [[GL.Objects.Education.Education, GL.Objects, Версия = 0.1.1.0, Культура = нейтральная, PublicKeyToken= ebf25c7be4be0c91]] # 289289]
- не удалось лениво инициализировать коллекцию ролей:
GL.Objects.Profile`1 [[GL.Objects.Education.Education, GL.Objects,Версия = 0.1.1.0, Культура = нейтральная, PublicKeyToken = ebf25c7be4be0c91]]. Profilables,
ни один сеанс или сеанс не был закрыт "
Запускает сеанс
var watsonService = new WatsonService();
Этот код сохраняет экземпляры объектов.
watsonService.SaveEducation(e);
epf1.Profilables.Add(e);
watsonService.SaveEducationProfile(epf1);
epf2 = watsonService.GetEducationProfile(epf1.ID.Value);
Первое утверждение проходит нормально. У epf2 есть идентификатор и создается его экземпляр.
Assert.AreEqual(epf1.ID, epf2.ID);
Это утверждение не выполняется. Profileables соответствует составной таблице, идентификатор которой вставлен успешно. Но теперь, когда я пытаюсь получить доступ к первому элементу в коллекции, происходит сбой.
Assert.AreEqual(epf1.Profilables[0].ID, epf2.Profilables[0].ID);
Это реализация метода, которая вызывается getEduметод cationProfile.
public T Get<T>(int id) where T : IDataObject
{
return (T)_session.Load(typeof(T), id, LockMode.Read);
}
Это определение конструктора в файле Fluent Mapping.
public EducationProfileMap()
{
Table("Profile");
Id(x => x.ID)
.Column("ProfileID")
.GeneratedBy
.HiLo(FluentConst.HILO_TABLE,
FluentConst.NEXTHI_COLUMN,
FluentConst.MAXLO,
String.Format(FluentConst.WHERE_FMT_STR, "Profile"));
Map(x => x.Type).CustomType<int>().Column("ProfileType");
HasManyToMany(x => x.Profilables)
.ParentKeyColumn("ProfileID")
.ChildKeyColumn("EducationID")
.Cascade.All()
.Table("EducationProfile");
}