데이터 세트에는 WriteXml 또는 ReadXml 메서드가 있습니다.DataSet (XML 데이터베이스) 에서처럼 ObjectContext를 XML로 직렬화하는 방법은 무엇입니까?
어떻게 Entity Framework에서이 작업을 수행 할 수 있습니까? 이전에이 기능을 구현 한 사람이 있습니까?
데이터 세트에는 WriteXml 또는 ReadXml 메서드가 있습니다.DataSet (XML 데이터베이스) 에서처럼 ObjectContext를 XML로 직렬화하는 방법은 무엇입니까?
어떻게 Entity Framework에서이 작업을 수행 할 수 있습니까? 이전에이 기능을 구현 한 사람이 있습니까?
기본적으로 XML로 데이터베이스를 백업하고 싶습니다.이 백업을 서버에서 처리하는 대신 응용 프로그램에서 처리하는 것을 원하지 않습니다.
컨텍스트에서 해고 된 이벤트를 처리 한 다음 데이터를 저장한다고 생각합니다. 여기
가있다 : 나는 xml 파일 크기가 너무 성장 (단순 짧은 데이터 유형의 100-300 작은 개체의 기록과 같이 개최합니다) 일치하지 expext으로
, 내가는 XML DB에 대해 동 기적으로 작업하기로 결정 강력한 형식의 DTA 세트의 부분 클래스 : 심지어 단지 표시를 얻을 수있는 빠른 perfoance 테스트를했다, 그래서 당신은 당신의 자신을 귀찮게하는 경우 BTW
Imports System.Xml
Partial NotInheritable Class XmlDatabas : Inherits Data.DataSet
Private ReadOnly XmlFileName As String = _
My.Application.Info.DirectoryPath & "\Data.xml"
Private Sub SeawaveData_Initialized(sender As Object, e EventArgs) _
Handles Me.Initialized
If Not IO.File.Exists(XmlFileName) Then WriteXml(XmlFileName)
ReadXml()
End Sub
Public Shadows Sub AcceptChanges()
MyBase.AcceptChanges()
WriteXml()
End Sub
Public Overloads Sub ReadXml()
ReadXml(XmlFileName)
End Sub
는 (의존하지 않는, 다시 매우 추상적 테스트, 테스트입니다 만약 당신이 더 큰 파일의 XmlDb을 만들려고한다면!). 또한이 파일은 xml 파일에서 외부 변경 사항을 테스트하지 않으며 ASP.NET에서 우승 응용 프로그램에 적합하거나 다중 요청을 허용하려는 경우 기존 응용 프로그램의 변경 사항을 확인하는 방법을 고려해야한다고 생각하십시오. , 또는 커밋 변경 큐가있는 DAL DLL을 만들 수 있습니다.
Module Program
Sub Main()
Using ds As New XmlDb
Dim longString = ""
For index As Integer = 1 To 250
longString &= "aaaaaaaaaaaaaaaaaaaaaaaaa"
Next
Dim step1 = Now
For index As Integer = 1 To Short.MaxValue
ds.Account.AddAccountRow(index.ToString, longString, True, True, _
longString, "", "", longString, longString, longString, _
longString, longString, longString, longString, longString, _
longString)
Next
Dim step2 = Now
ds.AcceptChanges()
Dim step3 = Now
Console.WriteLine("step 1 took: {0:T}", step2 - step1)
Console.WriteLine("step 2 took: {0:T}", step3 - step2)
Console.WriteLine("entire operation took: {0:T}", step3 - step1)
End Using
Stop
End Sub
End Module
Public Overloads Sub WriteXml()
WriteXml(XmlFileName)
End Sub
End Class
Results:
step 1 took: 00:00:01.3390000
step 2 took: 00:00:23.5280000
entire operation took: 00:00:24.8670000
24.8 초, 큰 아? xml 파일의 크기를 알려주십시오. 2062857146 바이트는 1967.2938785553입니다. MB
그러나 ObjectContext는 데이터베이스가 아닙니다. 그리고 그것을 비 직렬화할까요? –
당신 말이 맞아요, 무슨 말 할까, 좋은 생각 있어요? 어쩌면 SavingChanges 이벤트에서 테이블 이름, 행 ID, db에 대한 각 커밋의 시간 간격을 저장하고 서버가 다운되었을 때 paralelly로 x 행 DB에 해당 행을 추가하는 예약 된 윈 - 서비스를 갖습니다. 문제. 나는 기본적으로 두 개의 DB와 함께 객체 컨텍스트를 작동시키는 방법을 찾는다 : sql과 xml, 둘 다 동기화된다. 서버가 xml로 간 다음 sql과 xml을 동기화한다. – Shimmy