Fließend nhibernate: Enum in zusammengesetzten Schlüssel wird zu int zugeordnet, wenn ich String brauchen
-
21-09-2019 - |
Frage
das Verhalten der FNH ist standardmäßig Aufzählungen in seine String in der db abzubilden.
Aber während Abbilden eines ENUM als Teil eines zusammengesetzten Schlüssel, wird die Eigenschaft als int abgebildet.
z.B.
in diesem Fall
public class Address : Entity
{
public Address() { }
public virtual AddressType Type { get; set; }
public virtual User User { get; set; }
Wo AddresType ist von
public enum AddressType
{
PRESENT, COMPANY, PERMANENT
}
Der FNH-Mapping ist als
mapping.CompositeId().KeyReference(x => x.User, "user_id").KeyProperty(x => x.Type);
das Schema-Erstellung dieses Kartierungsergebnisse in
create table address (
Type INTEGER not null,
user_id VARCHAR(25) not null,
und die hbm als
<composite-id mapped="true" unsaved-value="undefined">
<key-property name="Type" type="Company.Core.AddressType, Company.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<column name="Type" />
</key-property>
<key-many-to-one name="User" class="Company.Core.CompanyUser, Company.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<column name="user_id" />
</key-many-to-one>
</composite-id>
Wenn die Address sollte, wie sie erzeugt werden,
type="FluentNHibernate.Mapping.GenericEnumMapper`1[[Company.Core.AddressType,
Wie kann ich anweisen FNH zu mappit als Standard-Zeichenfolge Enum generische Mapper?
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow