Entity Frameworkで(Sql Server)xml列を使用する

entity-framework sql-server-2008 xml

質問

Entity Frameworkでxml型の列を使用しようとした人はいますか?エンティティは文字列を返します。

テーブル列がXML型の場合、Entity Frameworkの次のバージョンでXElement型がサポートされる予定です。

よろしく。

受け入れられた回答

Entity FrameworkはXML列の内容(型指定されているかどうかにかかわらず)を文字列として返すので、xmlドキュメントの内容(それはノードです)からエンティティを作成することはできません。 ..試していませんでした( リンクテキスト

Marcの最後の質問にお答えします。EFの次のバージョンでは、通常の表やそれらの間の関係のように、xml文書の内容をエンティティとしてマップする可能性があると思います。エンティティのプロパティとしてのXML文書


人気のある回答

これは私が今やっていることです、私は自分のモデルにマッチする部分クラスに、文字列として.Dataプロパティを持つメソッドを追加します。

基本的にはinstance.UseData((data)=> {...});を呼び出します。

そこからラムダ式の中でデータを読んだり操作したりすることができ、データベースの元のフィールドに保存し直すことができます。関連分野

私はXMLとしてDataフィールドにもっと動的な構造を入れています...これはVB#.NETのC#..より自然なことです。

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



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ