【问题标题】:persist Entity Framework object instance to xml将实体框架对象实例持久化到 xml
【发布时间】:2011-03-13 01:51:35
【问题描述】:

我正在使用从带有实体框架的数据库生成的域模型。如何将此域模型的对象实例序列化/反序列化到/从 xml?我可以为此使用 .edmx 文件吗?任何代码示例? 谢谢

【问题讨论】:

    标签: c# entity-framework asp.net-mvc-2


    【解决方案1】:

    您可以使用XmlSerializer 类。还有 WCF 引入的DataContractSerializer。例如,如果您想使用 XmlSerializer 类将现有对象序列化为 XML:

    SomeModel model = ...
    var serializer = new XmlSerializer(typeof(SomeModel));
    using (var writer = XmlWriter.Create("foo.xml"))
    {
        serializer.Serialize(writer, model);
    }
    

    并将 XML 反序列化回现有模型:

    var serializer = new XmlSerializer(typeof(SomeModel));
    using (var reader = XmlReader.Create("foo.xml"))
    {
        var model = (SomeModel)serializer.Deserialize(reader);
    }
    

    【讨论】:

      【解决方案2】:

      我使用此 VB 代码将我的 EF 模型序列化为 Xml:

       Try
           Dim serializer = New XmlSerializer(GetType(GestionEDLService.Biens))
           Dim localFolder As StorageFolder = ApplicationData.Current.LocalFolder
           Dim sampleFile As StorageFile = Await localFolder.CreateFileAsync("dataFile.xml", CreationCollisionOption.OpenIfExists)
           Dim stream As Stream = Await sampleFile.OpenStreamForWriteAsync()
      
           serializer.Serialize(stream, MyEFModel.MyEntity)
      
       Catch ex As Exception
           Debug.WriteLine(ex.ToString)
       End Try
      

      编辑:您也可以像这样使用 DataContractSerializer

      Imports System.Runtime.Serialization
      
      Public Sub WriteToStream(sw As System.IO.Stream)
      
          Dim dataContractSerializer As New DataContractSerializer(GetType(MyDataSource))
      
          dataContractSerializer.WriteObject(sw, _MyDataSource)
      
      End Sub
      
      Public Sub ReadFromStream(sr As System.IO.Stream)
      
          Dim dataContractSerializer As New DataContractSerializer(GetType(MyDataSource))
      
          _MyDataSource = dataContractSerializer.ReadObject(sr)
      
      End Sub
      

      HTH

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-19
        • 2015-09-02
        • 1970-01-01
        • 2014-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多