FluentNHibernate: 1.3.0.733
NHibernate: 3.3.1.4000
Id列の列名を設定しようとしているのですが、無視されているようです。
編集:
解決策が見つかりました。プロパティの再宣言 (new-modifier) が問題でした (回答を参照)。
規則とオーバーライドで AutoMapping を使用しています。
オーバーライド:
public class OrderHeadMapping : IAutoMappingOverride<OrderHead>
{
public void Override(AutoMapping<OrderHead> mapping)
{
mapping.Schema("[database].[dbo]");
mapping.Table("OrderHeads");
mapping.Id(x => x.Id, "desiredColumnName")
.Column("desiredColumnName")
.GeneratedBy.UuidString();
...
}
}
このコードは実行されますが、列名は「Id」のままです。
マッピングをディレクトリにエクスポートして、結果を確認しました。
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class xmlns="urn:nhibernate-mapping-2.2" schema="[database].[dbo]" name="OrderHead, Core, Version=1.0.4666.19686, Culture=neutral, PublicKeyToken=null" table="OrderHeads">
<cache usage="read-write" />
<id name="Id" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Id" />
<generator class="assigned" />
</id>
...
</class>
</hibernate-mapping>
「.Id(」および「.Column(」)のソリューション全体を検索して、誤ってリセットされないようにしましたが、id列名の設定/上書きを扱う結果はありません。だから今、私は少し迷っています.