如何在 PetaPoco 中检索 xml 列
Posted
技术标签:
【中文标题】如何在 PetaPoco 中检索 xml 列【英文标题】:How to retrieve xml column in PetaPoco 【发布时间】:2015-03-25 15:14:02 【问题描述】:我在 sql (msql-server) 中使用nvarchar
数据类型来描述描述。
但我想将该列更改为 xml
数据类型。
在我的 c# 数据层中,我使用 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 是否支持它。
【问题讨论】:
【参考方案1】:我认为 Petapoco 不支持开箱即用的 XML 数据类型,但是如果您在 SQL Server 中将数据类型更改为 XML,并将 poco 上的相应属性保留为字符串,则可以使用 linq to xml 之类的东西或 xDocument 在选择时将返回的字符串作为 xml 处理。您可能还可以向 poco 添加一个 XmlDocument 属性(Petapoco.Igrnored)(我建议在部分类中,这样如果您重新生成 t4,它就不会被覆盖)并处理字符串到 xml 和 xml 到字符串的转换getter/setter,这样您就可以无缝访问 XML 对象。虽然我还没有测试过对 xml 字段的更新/插入,但是 Petapoco 的参数处理通常需要我扔给它的任何东西。
【讨论】:
是的,这正是我所做的,将 SQL 数据类型更改为 XML,但将相应的 petapoco 对象属性保留为字符串。我会接受你的回答作为感谢:)以上是关于如何在 PetaPoco 中检索 xml 列的主要内容,如果未能解决你的问题,请参考以下文章