Hey guys,
I'm trying to use the entity framework to take data (nested relationships) from one DB and insert it into another.
The idea is you download the data as an XML file and then upload it and it gets inserted into the new DB.
The download to XML is simple:
var BoroughQuery = from b in Context.Borough.Include("User").Include("Location").Include("Contact").Include("Location.LocationContact") where b.Id == BoroughId select b;
BoroughModel = BoroughQuery.First();
Context.Detach(BoroughModel);
System.Runtime.Serialization.DataContractSerializer ser = new System.Runtime.Serialization.DataContractSerializer(typeof(Borough));
System.IO.DirectoryInfo TempDirectory = new System.IO.DirectoryInfo(Server.MapPath(Request.ApplicationPath + "Temp"));
if (!TempDirectory.Exists) TempDirectory.Create();
System.IO.FileInfo TempFile = new System.IO.FileInfo(TempDirectory.FullName + "\\" + BoroughModel.Key + "_" + System.DateTime.UtcNow.ToString("yyyyMMddhhmmss") + ".xml");
FileStream writer = new FileStream(TempFile.FullName, FileMode.Create);
ser.WriteObject(writer, BoroughModel);
writer.Close();
The problem ..is attaching that read XML to another context and saving it to the DB
So far I have the following which reads in the model from XML fine but results in nothing being added to the db:
DataContractSerializer ser = new DataContractSerializer(typeof(Borough));
Borough deserializedBorough = (Borough)ser.ReadObject(fleBoroughUpload.FileContent);
using (Entities Context = new Entities("name=EntitiesTarget"))
{
Context.Attach(deserializedBorough);
Context.SaveChanges();
}
Any help would be greatly appreciated.
Thanks a bunch, Alex
NOTE Because both these DBs are on the same server the data doesn't HAVE to come down as XML but I imagine the problem would still be the same.