2016-09-10 5 views
0

SQL 2014データベースでは、XMLをパラメータとして使用するストアドプロシージャがあります。CodefluentのメソッドパラメータとしてXMLを使用する

XMLをパラメータタイプとして使用するCodefluentメソッドを作成しようとしています。パラメータが定義される:

<cf:parameter typeName="xml" name="XMLcriteria " /> 

これはのように定義されたパラメータを有するDB手順になる:Iが最大に増加しようとすると

@XMLcriteria as XML 

:代わりに期待の

@XMLcriteria [nvarchar] (256) 

をパラメータのサイズを変更すると、わかりやすい結果が得られます。

@XMLcriteria [nvarchar] (max) = '' 

メソッドパラメータとしてXMLを渡して、SQLプロデューサによって作成されたストアドプロシージャでパラメータがXMLとして定義されるようにするにはどうすればよいですか?

また、XML CFタイプが何をしているかを理解するのも難しいです。 XMLタイプのCFエンティティプロパティを作成すると、BOMはタイプの文字列のクラスプロパティを生成します。 xElementまたはxDocumentをこのプロパティに割り当てると、すべてのXMLマークアップが削除され、値の長い文字列が1つだけになります。この場合、SQLプロシージャのパラメータとしてこのEntity(XMLプロパティを含む必要があります)を使用すると、要素を選択する方法がない1つの長い文字列が取得されます。あなたがタイプXmlElementまたはXmlDocumentのプロパティが必要な場合は

<cf:parameter typeName="xml" cfps:dataType="xml" name="arg" /> 

は、あなたが部分クラスを追加し、値を解析し、プロパティを追加することができます

答えて

1

XMLパラメータを定義するには、属性cfps:dataType="xml"を使用することができます文字列プロパティ

+0

ありがとうございます。私に正しい方向を教えていただきありがとうございます。私はdbTypeを使用していました:XMLは文字列にリセットされ続けました。これにより、渡されるXMLからSQLへの問題が修正されました。しかし、パラメータの内容は、myXMLparameter.toStringを使用して解決した文字列です。それほどシームレスではなく、清潔だが効果的です。 ご協力いただきありがとうございます。 –

+0

[このブログの投稿](https://blog.codefluententities.com/2015/07/17/table-valued-parameters-use-ienumerable-home.asp)の説明に従って、パラメータのタイプを 'XmlElement'に変更することができます。アレイの代わりに/)。 'AddParameter'メソッドを' AddParameterXml'に変更することもできます([blog post](https://blog.codefluententities.com/2014/08/26/store-int128-in-a-database/)) – meziantou

関連する問題