如何在PetaPoco中检索xml列

时间:2015-01-27 04:14:14

标签: c# sql-server ado.net petapoco

我在sql(msql-server)中使用nvarchar数据类型来描述Description。 但我想将列更改为xml数据类型。 在我的c#datalayer中,我使用petapoco获取数据,这是使用Ado.Net DataReader。

所以

poco对象:

[PetaPoco.TableName("sqlTableName")]
[PetaPoco.PrimaryKey("ID")]
public class PlainObj
{
    public int ID { get; set; } //(int, not null)
    public string Description { get; set; } //(string, null) want to change this to xml type
}

poco获取方法

   public static List<PlainObj> Get(int InId)
    {
        var s = PetaPoco.Sql.Builder.Append(";EXEC @0", Common.StoreProcs.GetSP);
        s.Append("@@ID = @0", new SqlParameter() { SqlDbType = SqlDbType.Int, Value = InId });

        return PetaPocoContext.Fetch<PlainObj>(s); //Gets the object 
    }

我的问题是,如何获取XML而不是String的字符串,PetaPoco是否支持它。

1 个答案:

答案 0 :(得分:4)

我认为Petapoco不支持开箱即用的XML数据类型,但如果您在SQL Server中将数据类型更改为XML并将poco上的相应属性保留为字符串,则可以使用linq to xml之类的内容或xDocument将选定的xml处理返回的字符串。你也可以在poco中添加一个XmlDocument属性(Petapoco.Igrnored)(我建议在一个部分类中,这样如果你重新生成t4它就不会被覆盖)并将字符串处理为xml&amp; getter / setter中的xml到字符串转换,因此您可以无缝访问XML对象。我还没有对xml字段测试更新/插入,但是Petapoco的参数处理通常需要我投入的任何内容。