Wpis z mikrobloga

Nigdy nie używałem nHibernate (fluent) więc postanowiłem zerknąć sobie co i jak. Tak sobie dłubię i sprawdzam, ale nie mogę poradzić sobie z poprawnym mapowaniem klucza obcego. W profilerze na bazie wygląda wszystko ok, problem pojawia się przy mapowaniu na obiekt. Obiekty referencyjne się dociągają, ale ten zasrany Id nie.

public class UserAccountMapMap : EntityMap
{
public UserAccountMapMap()
{
Table("UserAccountMaps");
Map(x => x.RecordId);
References(x => x.User).LazyLoad();
}
}

Jakby References nie generowało samo kolumny UserId to mógłbym użyć zwykłego Map dla UserId i problem byłby załatwiony.
Konfiguracja:

return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2012.ConnectionString(ConnectionString()))
.Mappings(x => x.FluentMappings
.AddFromAssembly(Assembly.GetExecutingAssembly())
.Conventions.Add(ForeignKey.EndsWith("Id")))
.BuildSessionFactory();

Właściwości klasy UserAccountMap pomijając te z klasy bazowej:


public virtual Guid RecordId { get; set; }
public virtual User User { get; set; }
public virtual Guid UserId { get; set; }

Może ktoś ma jakiś pomysł jak to rozwiązać? :)

#programowanie #csharp #dotnet
protny0 - Nigdy nie używałem nHibernate (fluent) więc postanowiłem zerknąć sobie co i...

źródło: comment_esvbjS61TUTbtanKW6z5K9Ch07tjW1y1.jpg

Pobierz
  • 5
@jaggi: Jak użyję zamiast References Map(x => x.UserId) to bez problemu zapisuje się UserId do obiektu. z Map().Generated nie sprawdzałem, jutro poczytam o tym, ale na szybko widzę, że są dostępne z tego poziomu 3 metody Always(), Insert(), Never(). Masz jakiś ogólny pomysł?
@jaggi: Chcę mieć i dostępny obiekt User wraz z jego właściwościami oraz UserId. Obecnie mam albo obiekt User i puste Id (przy wykorzystaniu References) albo UserId (przy wykorzystaniu Map) i User = null