短いバージョン:
エンティティを保存すると、NHibernate 3.3で規則を使用すると、idプロパティが更新されません。
詳細バージョン:
エンティティIDプロパティ
public virtual Guid GuitarId { get; protected set; }
このマッピングを使用すると、エンティティはデータベースに正しく保存されますが、エンティティを読み込もうとしても、エンティティのIDは入力されません。単に無視されます。
mapper.BeforeMapClass += (model, type, classCustomizer) =>
{
classCustomizer.Id(x =>
{
x.Column(type.Name + "Id");
x.Generator(Generators.GuidComb);
});
};
保存されたエンティティを取得しようとすると、IDを除くエンティティのすべてのフィールドにデータが入力されます。遅延ロードされたが運がなかった場合に備えて、idプロパティにアクセスしようとしました。
var g = session.Get<Guitar>(existingId);
エンティティのIDマッピングをオーバーライドすると、保存後にidプロパティが正しく入力されます
mapper.Class<Guitar>(map =>
{
map.Id(x => x.GuitarId, x =>
{
x.Generator(Generators.GuidComb);
});
});
だから問題はBeforeMapClass
イベントにあります、何か提案はありますか?
私は何かが足りないのですか?それともこれはバグですか?