[英]persist Entity Framework object instance to xml
我正在使用從帶實體框架的數據庫生成的域模型。 我如何在/從xml序列化/反序列化此域模型的對象實例? 我可以使用.edmx文件嗎? 任何代碼示例? 謝謝
您可以使用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);
}
我使用此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
高溫超導
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.