Mam obiekt modelu domeny, który ma właściwości typu System.DateTimeOffset. Używam bazy danych, która nie obsługuje tego typu natywnie, więc planuję przechowywać ją przy użyciu kolumny typu "datetime" i jednego typu "smallint".Używanie NHibernate ICompositeUserType z typem wartości
Sprawdziłem, jak zmapować to za pomocą składników NHibernate, i okazało się, że może działać przy użyciu instancji ICompositeUserType. Jednak po implementacji interfejsu natknąłem się na metodę o nazwie "SetPropertyValue", która ostentacyjnie ustawia właściwość w typie. Ponieważ DateTimeOffset to System.ValueType, samo ustawienie takiej właściwości nie zadziała, ponieważ jest niezmienne (przynajmniej bez użycia refleksji lub niebezpiecznego kodu, którego chciałbym uniknąć). Ponieważ parametr instance w SetPropertyValue nie ma wartości "ref", jak używać instancji ValueType jako komponentów w NHibernate?
Okej, dostatecznie ... Podążam do tej pory. Ale w jaki sposób twoja instancja 'dt' wraca do modelu domeny? – codekaizen
dt = komponent, właśnie rzucony do DateTime. Mogę go zastąpić wszędzie z komponentem ((DateTime)). Składnik jest tym, co jest faktycznie oddawane z powrotem do modelu domeny. – anonymous
Nie jestem pewien, czy istnieje dokumentacja tych rzeczy. Nawet o tym nie pamiętam i musiałem spojrzeć na kontekst w moim kodzie. Myślę, że musiałem spojrzeć na przykład zwykle dostarczany z NHibernate (jak sądzę?) I uczyć się na tym (i oczywiście zapomnieć o tym kiedy już skończyłem!) – anonymous