Кто-нибудь пытался использовать столбцы с XML-строками с Entity Framework? Объект возвращает строку.
Будет ли следующая версия Entity Framework поддерживать типы XElement, когда столбец таблицы имеет тип XML.
С уважением.
Кто-нибудь пытался использовать столбцы с XML-строками с Entity Framework? Объект возвращает строку.
Будет ли следующая версия Entity Framework поддерживать типы XElement, когда столбец таблицы имеет тип XML.
С уважением.
Entity Framework возвращает содержимое столбцов XML (напечатано или нет) в виде строк, поэтому он не может создать объект из содержимого документов xml (его узлы)... если вам все еще любопытно прочитать эту статью, это дает возможное решение к вашей проблеме..и не пробовал, хотя (текст ссылки)
чтобы ответить на последний вопрос Марка. Что я ожидаю увидеть в следующей версии EF, это возможность сопоставить содержимое XML-документов как сущностей, например, с обычными таблицами и отношениями между ними.. или, по крайней мере, сделать части документа xml как свойства в объектах.
Вот что я делаю сейчас: я добавляю метод в частичный класс, соответствующий моей модели, у которой свойство .Data является строкой.
По сути, у вас есть вызов instance.UseData((data) => {...});
Оттуда в лямбда-выражении вы можете читать/манипулировать данными, и они сохраняются обратно в исходное поле для базы данных... Я хотел бы просто иметь возможность создать свойство для этого, которое связано с событием для обновления смежное поле.
Я добавляю более динамическую структуру в поле данных в виде XML... это более естественно в VB.Net, чем в С#... если бы мой проект был на С#, я мог бы склоняться в пользу JSON...
С#
public void UseData(Action<XElement> editor)
{
var def = XElement.Parse("<Data></Data>");
XElement data;
try
{
if (String.IsNullOrWhiteSpace(this.Data))
{
data = def;
}
else
{
data = XElement.Parse(this.Data);
}
}
catch (Exception ex)
{
data = def;
}
editor(data);
this.Data = data.ToString();
}
VB.Net
Public Sub UseData(editor As Action(Of XElement))
Dim def = <Data></Data>
Dim data As XElement
Try
If String.IsNullOrWhiteSpace(Me.Data) Then
data = def
Else
data = XElement.Parse(Me.Data)
End If
Catch ex As Exception
data = def
End Try
editor(data)
Me.Data = data.ToString()
End Sub