3

現在、NHibernate マッピングを介して XML を保存しようとしているという問題があります。これは、XML が特定の長さに達した場合を除き、正常に機能します。マッピングは次のようになります。

Property(x => x.Expression, c =>
{
    c.NotNullable(true);
    c.Column(m => m.SqlType("xml"));
});

スローされる例外は次のとおりです。

文字列値の長さが、マッピング/パラメーターで構成された長さを超えています。

明らかに、文字列が長すぎることを教えてくれますが、XML マッピングであるため、これが問題になるとは思いませんでしたか? 挿入を介して XML を SQL Server データベースに直接保存すると、期待どおりに正常に動作するため、問題は NHibernate マッピングにあるようです。誰にもアイデアはありますか?

4

1 に答える 1

3

マッピングを次のように変更しようとしています。

Property(x => x.Expression, c =>
{
    c.NotNullable(true);
    c.Type(NHibernateUtil.XmlDoc);
});

次に、ドメイン オブジェクトをXmlDocument文字列の代わりに使用します。

NHibernate は、XML を常に正しく文字列にマッピングするとは限らないようです。特に長い文字列の場合はそうです。

もう少し LINQy になりたい場合は、XDocumentを と一緒に使用できますがNHibernateUtil.XDoc、私自身は試していません。

于 2012-09-28T10:32:11.473 に答える