NHibernate.NonUniqueObjectException is Throw при попытке Сохранить объект с двумя свойствами с одинаковым типом и одинаковым значением - PullRequest
0 голосов
/ 10 сентября 2011

Когда я пытаюсь сохранить 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

Следует моей структуре БД:

database structure

И моя карта:

    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);
        }
    }

Как это решить?

...