Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中用XML序列化实体集合#_C#_Xml_Entity Framework_Serialization - Fatal编程技术网

C# 在c中用XML序列化实体集合#

C# 在c中用XML序列化实体集合#,c#,xml,entity-framework,serialization,C#,Xml,Entity Framework,Serialization,我试图序列化一个包含entitycollection的对象。我可以使用 public string Serialize<T>(T item) { XmlSerializer mySerializer = new XmlSerializer(typeof(T)); StringWriter sww = new StringWriter(); XmlWriter writer = XmlWriter.Create(

我试图序列化一个包含entitycollection的对象。我可以使用

     public string Serialize<T>(T item)
      {
          XmlSerializer mySerializer = new XmlSerializer(typeof(T));
        StringWriter sww = new StringWriter();
        XmlWriter writer = XmlWriter.Create(sww, new XmlWriterSettings() { OmitXmlDeclaration = true, Indent = true });
        try
        {
            mySerializer.Serialize(writer, item);
        }
        catch (Exception) { }
        finally
        {
            writer.Close();
            sww.Close();
        }
        return sww.ToString();
    }
需要序列化的对象是wfi。如果您有任何帮助,请让我们更清楚地了解此EntityCollection是一个导航属性,我们将不胜感激
我们可以一起序列化object+navigation属性吗?或者我需要定义一个组成object和navigation属性(实体集合)的新类。

也许您可以关闭实体模型的延迟加载。这样它将强制加载所有字段

为此,您可以尝试转到EDMX属性并推迟延迟加载

您可以尝试的另一个方法是“包括”,如下所示:

myEntity.MyTable.include("FieldsInfo");

仅在此之后,将该项传递给Serialize方法。如果您有循环引用,这可能会有问题…

一个简单的解决方案,效果很好。 在实体的分部类中,我添加了一个返回EntityCollection列表的属性,如下所示:

public List<XXX> XXXList // XXX stands for the EntityCollection
{
    get { return XXX.ToList; }
} 
public List XXXList//XXX代表EntityCollection
{
获取{return XXX.ToList;}
} 

序列化程序使用所有关系正确地获取对象。

我已经在使用这种方法了。但它并没有按照我想要的方式或u建议的方式工作,所以我用另一种方式解决了问题,我定义了一个类,然后将实体集合分配给类属性,然后序列化了类对象。它起作用了,但这种方法的缺点是我需要定义一个新的类dat,我不想让nyhow感谢你的评论(K:)无论如何,拥有POCO而不是EF生成的实体总是一个好的做法。;)
public List<XXX> XXXList // XXX stands for the EntityCollection
{
    get { return XXX.ToList; }
}