Я создал такое отношение к каскадному сохранению данных.Проблема заключается в загрузке данных: NHibernate генерирует отдельный выбор для каждой строки, который занимает очень много времени.
Удаление HasOne из моего отображения ускоряет загрузку данных, однако при сохранении возникает ошибка.Есть идеи как это решить?Примеры провайдера, эквивалент базы данных и используемые сопоставления:
Получение данных:
public IList<Parent> GetAll()
{
var session = SessionFactory.Create();
var daos = session.Query<ParentDao>().Fetch(x => x.Child).ToList(); // I need to fetch this
return daos;
}
DataBaseTables:
parents: {Id, Name, child_id}
children: {Id, Name}
Карты:
public class ParentDaoMap : ClassMap<ParentDao>{
public ParentDaoMap(){
Table("parents");
Id(x => x.Id);
Map(x => x.Name);
References(x => x.ChildDao, "child_id").Cascade.All();
}}
public class ChildDaoMap : ClassMap<ChildDao>{
public ChildDaoMap(){
Table("children");
Id(x => x.Id);
Map(x => x.Name);
HasOne(x => x.ParentDao).PropertyRef(x => x.ChildDao); //This one causes long getting
}}