Mam następujący samouczek http://wiki.fluentnhibernate.org/Getting_started do tworzenia mojego pierwszego projektu NHibernate z Fluent NHibernatemapowania enum z Fluent NHibernate
Mam 2 tabele
1) Konto z pól
Id
AccountHolderName
AccountTypeId
2) AccountType z polami
Id
AccountTypeName
Teraz aka Typy nt mogą być oszczędności lub Obecny więc tabela AccountTypes sklepów 2 rzędy 1 - Oszczędności 2 - Aktualne
Na stole AccoutType Mam zdefiniowane enum
public enum AccountType {
Savings=1,
Current=2
}
Na stole Konta definiuję klasę encji
public class Account {
public virtual int Id {get; private set;}
public virtual string AccountHolderName {get; set;}
public virtual string AccountType {get; set;}
}
fluent NHibernate mapowania są:
public AgencyMap() {
Id(o => o.Id);
Map(o => o.AccountHolderName);
Map(o => o.AccountType);
}
Kiedy próbuję uruchomić rozwiązanie, daje wyjątek - InnerException = {"(XmlDocument) (2,4): Błąd sprawdzania poprawności XML: Element" klasa "w przestrzeni nazw" urn: nhibernate-mapping-2.2 "ma niepełna treść. Lista możliwych oczekiwanych elementów: 'meta, subselect, cache, synchronizacja, komentarz, tuplizer, id, composite-id' w przestrzeni nazw 'ur ...
Domyślam się, że to dlatego, że nie zdefiniowałem żadnego mapowania dla AccountType.
Pytania są:
- Jak mogę używać AccountType enum zamiast klasę AccountType?
- Może idę na niewłaściwym torze. Czy jest lepszy sposób to zrobić?
Dzięki!
Aha! Używałem CustomSqlType i to nie działało! Potrzebowałem CustomType! –
AcountType to Enum, więc wszystkie elementy będą zabrudzone po załadowaniu. Zobacz http://stackoverflow.com/questions/3531937/enum-to-integer-mapping-causing-updates-on-every-flush – schoetbi
+1 Dzięki m8, który działa idealnie! – IamStalker