Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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# 将XmlSerializer与XML字段和LinqToSQL一起使用的最佳方法?_C#_Sql_Xml_Linq To Sql - Fatal编程技术网

C# 将XmlSerializer与XML字段和LinqToSQL一起使用的最佳方法?

C# 将XmlSerializer与XML字段和LinqToSQL一起使用的最佳方法?,c#,sql,xml,linq-to-sql,C#,Sql,Xml,Linq To Sql,可以让LinqToSql使用XmlSerializer将类型化XML字段反序列化为C对象吗 目前我有以下代码:注意,我必须使用XElement.ToString才能使用XmlSerializer protected static T Deserialize<T>(string xmlString) where T : class { var xmlSerializer = new XmlSerializer(typeof(T)); va

可以让LinqToSql使用XmlSerializer将类型化XML字段反序列化为C对象吗

目前我有以下代码:注意,我必须使用XElement.ToString才能使用XmlSerializer

    protected static T Deserialize<T>(string xmlString) where T : class
    {
        var xmlSerializer = new XmlSerializer(typeof(T));
        var obj = xmlSerializer.Deserialize(new StringReader(xmlString));
        return (T)obj;
    }
    //...
    {
       return ATable.Select(x => Deserializer<AContentType>(x.Content.ToString()));
       // x.Content is an XElement
       // AContentType is a class that can be used by XmlSerializer to deserialize 
       //    The class was generated using xsd.exe
    }
如果我不能让LinqToSql使用XmlSerializer,我至少可以让它返回一个字符串而不是XElement吗


顺便说一句,欢迎您考虑如何改进反序列化功能。

不,我不认为您可以-您可以从SQL Server返回一个XML字段作为字符串,然后对其进行任何手动处理-包括使用Linq解析为XML

但我不知道Linq to SQL有任何内置的功能可以将XML字段反序列化为对象——如果SQL Server中没有XML模式,它会怎么做?SQL Server中既可以有类型化的XML字段,也可以有非类型化的XML字段,而不受任何架构限制


Marc

你能发布一个代码示例吗?你想反序列化到什么,一个XElement?