将两个类从实体模型序列化为XML

时间:2014-12-07 16:18:58

标签: c# xml database entity-framework serialization

我将从解释问题开始.1.IF我使用标准的序列化器,它抛出反射类型的问题(因为我已经发现,因为顺序元素是ICollection)。 2.更改datacontractserializer之后。即使对象填充了所有必要的数据(数据及其元素与数据的顺序)。它只序列化顺序(元素被删除)。所以如何用实体序列化它?

模型类,我把它缩短了一点:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;

namespace EntityError
{
public partial class Order
{
public virtual int Id{get;set;}
public virtual Nullable<int> 
OrderNumber{get;set;}
 public virtual ICollection<Element> Element
    {get;set;}

public partial class Element
{
    public virtual int Id
    {get;set;}

    public virtual int OrderId
    {get;set;}}
public virtual Order Order
    {get;set;}



namespace EntityError
{
    class Program
    {
    static void Main(string[] args)
    {
        TestEntities TE = new TestEntities();
        Order oo = new Order();
        Element el = new Element();
        TE.Order.Load();
        TE.Element.Load();
        Serialize(oo);

        var orders = TE.Order;
        foreach (var item in orders)
        {
            oo.Id = item.Id;
            oo.OrderNumber = item.OrderNumber;

            var elem = TE.Element;
            foreach (var e in elem)
            {
                el.Id = e.Id;
                el.ItemNumber = e.ItemNumber;
                el.Order = e.Order;
                el.OrderId = el.OrderId;
                el.Price = e.Price;
                el.Quantity = e.Quantity;
                oo.Element.Add(el);
            }}}
    static public void Serialize(Order oo)
                { 
                    XmlSerializer serializer = new XmlSerializer(typeof(Order)); 
                    using (TextWriter writer = new StreamWriter(@"C:\Xml.xml"))
                    {
                        serializer.Serialize(writer, oo); 
                    }}}}

0 个答案:

没有答案