В базе данных SQL 2014 у меня есть хранимая процедура, которая использует XML в качестве параметра.Использование XML как параметра метода в Codefluent
Я пытаюсь создать метод Codefluent, который будет использовать XML в качестве типа параметра. Параметр определяется:
<cf:parameter typeName="xml" name="XMLcriteria " />
Это приводит к процедуре DB, имеющего параметр, определяемый как:
@XMLcriteria [nvarchar] (256)
вместо ожидаемого:
@XMLcriteria as XML
Если я попытаться увеличить максимальную размер параметра, я получаю еще более странный результат:
@XMLcriteria [nvarchar] (max) = ''
Как передать XML в качестве параметров метода, чтобы параметр был определен как XML в хранимой процедуре, созданной производителем SQL?
У меня также возникли проблемы с пониманием того, что делает тип XML CF. Если я создаю свойство объекта CF с типом XML, спецификация выдаст свойство класса типа Строка. Если я присвою этому объекту xElement или xDocument, вся разметка XML удаляется, и я получаю только одну длинную строку значений. В этом случае, когда я использую этот Entity (который должен содержать свойства XML) в качестве параметра в процедуре SQL, я получаю одну длинную строку без выбора элементов.
Спасибо, что указали меня в правильном направлении. Я использовал dbType: XML, который сбрасывался в строку. Это устранило проблему передачи XML-SQL. Однако содержимое параметра все еще требует строки, которую я разрешил с помощью myXMLparameter.toString. Не так бесшовно/чисто, но эффективно. Спасибо за помощь! –
Вы можете попытаться изменить тип параметра на 'XmlElement' в качестве объяснения в [этом сообщении в блоге] (https://blog.codefluententities.com/2015/07/17/table-valued-parameters-use-ienumerable- вместо-оф-ан-массива /). Вы также можете изменить метод «AddParameter» на «AddParameterXml» ([сообщение в блоге] (https://blog.codefluententities.com/2014/08/26/store-int128-in-a-database/)) – meziantou