誰でもEntity Frameworkでxml型の列を使用しようとしましたか? エンティティは文字列を返します。Entity Frameworkで(SQL Server)xml列を使用する
テーブルの列の型がXMLの場合、次のバージョンのEntity FrameworkはXElement型をサポートしますか。
よろしくお願いいたします。
誰でもEntity Frameworkでxml型の列を使用しようとしましたか? エンティティは文字列を返します。Entity Frameworkで(SQL Server)xml列を使用する
テーブルの列の型がXMLの場合、次のバージョンのEntity FrameworkはXElement型をサポートしますか。
よろしくお願いいたします。
エンティティフレームワークはXML列の内容(型付けされているかどうか)を文字列として返します。したがって、XML文書のコンテンツ(ノードです)からエンティティを作成できません...この記事を読んでも、あなたの問題への解決策..私はそれを試していませんでしたが(link text)
返信するMarcの最後の質問..次のバージョンのEFで見たいと思うのは、XMLドキュメントの内容をエンティティそれは通常のテーブルとそれらの間の関係で行います。または、少なくとも、エンティティのプロパティとしてxmlドキュメントの一部を作成します。
ここで私がやっていることは、部分クラスにメソッドを追加しています.Dataプロパティを持つモデルを文字列として照合します。
基本的には、instance.UseData((data)=> {...})を呼び出しています。
ラムダ式の中では、データの読み込み/操作が可能で、データベースの元のフィールドに戻って保存できます。このプロパティを作成するだけで関連するフィールドを更新します。私はXMLなどのデータ・フィールドに、よりダイナミックな構造を無理に勧めています
が...これは...
私のプロジェクトは、C#であった場合にC#は..私はJSONを優先するように傾斜するかもしれないとVB.Netで、より自然ですC#
public void UseData(Action editor)
{
var def = XElement.Parse("");
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 =
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