如何在Entity Framework中使用(Sql Server)xml列?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

有没有人试图在实体框架中使用xml类型的列?该实体返回一个字符串。

当表格列是XML类型时,下一版本的实体框架是否支持XElement类型?

提问于
用户回答回答于

实体框架将XML列的内容(键入或不是)作为字符串返回,因此它不能从XML文档内容(它是节点)创建实体。我期望在EF的下一个版本中看到的是将XML文档内容映射为实体的可能性,就像它与普通表以及它们之间的关系一样。或者至少使部分xml文档作为实体中的属性..

用户回答回答于

以下是我现在正在做的事情,我将一个方法添加到与我的模型匹配的部分类中,该模型具有.Data属性作为字符串。

基本上你有调用instance.UseData((数据)=> {...});

在lambda表达式中,你可以读取/操作数据,并将其保存回数据库的原始字段中......我希望能够为此创建一个属性,该属性绑定到事件以更新相关领域。

我正在将更多的动态结构作为XML推向Data领域......这在VB.Net中更自然,C#..如果我的项目是C#,我可能倾向于支持JSON ...

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

扫码关注云+社区