编程语言
首页 > 编程语言> > c# – 如何在PetaPoco中检索xml列

c# – 如何在PetaPoco中检索xml列

作者:互联网

我在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而不是字符串描述,并且PetaPoco是否支持它.

解决方法:

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

标签:c,sql-server,ado-net,petapoco
来源: https://codeday.me/bug/20190624/1275776.html