Когда я пытаюсь сохранить FacebookUserInfo
с 02 свойствами (расположение и родной город) того же типа FacebookLocation
и с тем же значением (ID), NHibernate бросает NHibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: 101883789854098, of entity: Inove.Kenquer.Domain.Entities.FacebookLocation
Следует моей структуре БД:
И моя карта:
public class FacebookLocationMap : ClassMap<FacebookLocation> {
public FacebookLocationMap() {
Table("FacebookLocation");
LazyLoad();
Id(x => x.ID);
Map(x => x.Name);
HasMany(x => x.FacebookUserAccountInfos);
}
}
public class FacebookUserAccountInfoMap : ClassMap<FacebookUserAccountInfo>{
public FacebookUserAccountInfoMap(){
Table("FacebookUserAccountInfo");
LazyLoad();
Id(x => x.UserID).GeneratedBy.Foreign("User");
Map(x => x.FacebookID).Unique();
HasOne(x => x.User).Constrained();
References(x => x.Hometown).Column("HometownID").Cascade.SaveUpdate();
References(x => x.Location).Column("LocationID").Cascade.SaveUpdate();
Map(x => x.Name);
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.UserName);
Map(x => x.Gender);
Map(x => x.Email);
Map(x => x.Verified);
Map(x => x.Locale);
Map(x => x.Birthday);
}
}
Как это решить?