0

レガシー DB で Fluent Nhibernate と Automapper を使用して S#arp アーキテクチャを使用しています。

テーブルの 1 つの id 列が Automapping 規則と異なるため、オーバーライドしようとしましたが成功しませんでした。私はこのエラーで終わります

FluentNHibernate.Cfg.FluentConfigurationException : SessionFactory の作成中に無効または不完全な構成が使用されました。詳細については、PotentialReasons コレクションと InnerException を確認してください。

  • データベースが Database メソッドで構成されていません。

FluentNHibernate.Cfg.FluentConfigurationException : SessionFactory の作成中に無効または不完全な構成が使用されました。詳細については、PotentialReasons コレクションと InnerException を確認してください。

  • データベースが Database メソッドで構成されていません。

    ---- NHibernate.MappingException : (XmlDocument)(3,6): XML 検証エラー: 名前空間 'urn:nhibernate-mapping-2.2' の要素 'class' に名前空間 'urn:nhibernate の無効な子要素 'property' があります-mapping-2.2'. 予想される可能な要素のリスト: 名前空間「urn:nhibernate-mapping-2.2」の「meta、subselect、cache、synchronize、comment、tuplizer、id、composite-id」。---- System.Xml.Schema.XmlSchemaValidationException : 名前空間 'urn:nhibernate-mapping-2.2' の要素 'class' には、名前空間 'urn:nhibernate-mapping-2.2' に無効な子要素 'property' があります。予想される可能な要素のリスト: 名前空間「urn:nhibernate-mapping-2」の「meta、subselect、cache、synchronize、comment、tuplizer、id、composite-id」

Id automapper 規則を使用して、オーバーライド機能を使用してカスタム列を ID として設定するにはどうすればよいですか?

注:これは 1 つのエンティティのみです。一般的な ID マッピング規則を変更したくありません
。現在のオーバーライド関数は

  public class AuthMap : IAutoMappingOverride<Auth>
  {
    public void Override(AutoMapping<Auth> mapping)
    {
      mapping.Table("x_auth");
      mapping.Map(x => x.Id, "user_id");
      mapping.Map(x => x.SessId, "sess_id");
    }
  }
4

1 に答える 1

2

考え出した:

として使用します

mapping.Id(x => x.Id).Column("user_id");
于 2010-01-03T05:06:49.907 に答える