Linq к sql, усекающему строку, возвращенную Хранимой процедурой

oracle docs сообщает

Объект считается неизменным , если его состояние не может измениться после его создания. Максимальная опора на неизменяемые объекты широко признана в качестве разумной стратегии для создания простого и надежного кода.

Неизменяемые объекты особенно полезны в параллельных приложениях. Так как они не могут изменить состояние, они не могут быть повреждены из-за интерференции потоков или обнаружены в несовместимом состоянии.

Мне нравится эта фраза из поста

Неизменяемые объекты облегчают программирование параллелизма

1
задан Will 30 June 2009 в 17:49
поделиться

2 ответа

Единственное подозрительное, что я могу заметить, это - здесь, в заявлении, вы:

public ISingleResult<spXResult> spX([Parameter(DbType="VarChar(8000)")] string str)

(DbType = VARCHAR (8000)) - это ANSI (не Unicode), но затем в объявлении столбца вы используете NTEXT - в первую очередь, это UNICODE (2 байта на символ), а почему NTEXT ?? Выше у вас VARCHAR?

[Column(Name="[XML_F52E2B61-18A1-11d1-B105-00805F49916B]", 
     Storage="_XML_F52E2B61_18A1_11d1_B105_00805F49916B", 
     DbType="NText", UpdateCheck=UpdateCheck.Never)]

Это кажется немного странным .......

Вы можете попытаться сделать так, чтобы в обоих местах было одинаково? Например, VARCHAR (8000) в обоих случаях ??

Marc

1
ответ дан 3 September 2019 в 01:14
поделиться

Просто измените свой sp с

SELECT ...
  FROM MyTable
  FOR XML AUTO

на

DECLARE @ResultXML xml

SET @ResultXML = 
 (SELECT ...
  FROM MyTable
  FOR XML AUTO)

SELECT @ResultXML as [MyXML]

и воссоздайте метод linq

0
ответ дан 3 September 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: