PetaPoco Insert包含我的Ignored属性?

时间:2017-03-16 15:09:43

标签: c# petapoco

我的poco对象如下所示:

   public class Poco
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Url { get; set; }
        [Ignore]
        public string IgnoreMe { get; set; }
        [Ignore]
        public List<Page> Pages { get; set; }
    }

当我跑步时:

db.Insert("Poco", Poco);

它会抛出异常,因为它仍然在Insert语句中包含IgnoreMePages属性。我还尝试设置[ExplicitColumns],但它仍尝试包含所有内容。

我创建了一个新的web api项目并输入完全相同的代码和Peta Poco版本,它忽略了列。我使用VS 2017和Web Api模板与完整的.NET Framework(不是核心)。它与新项目合作。另一个项目也不老,但有什么东西可以防止PetaPoco Ignore无法正常工作

我发现如果我在两个不同的项目中安装了PetaPoco nuget包,而另一个项目引用了另一个项目,这就是打破它的原因。问题是我需要安装PetaPoco,因为我需要一个项目的属性,我需要查询其他的东西

1 个答案:

答案 0 :(得分:0)

很奇怪。您确定您使用的Ignore属性是PetaPoco属性而不是来自不同库的属性吗?将鼠标悬停在属性上并检查该类是否为PetaPoco.IgnoreAttribute。

您也可以尝试使用[ResultColumn]属性(尽管Ignore应该正常工作)。

编辑 - 另一个可能的答案

刚刚看到您的编辑说当PetaPoco nuget包安装到两个单独的项目中时会出现问题。您是否正在使用将PetaPoco.cs类文件放在每个项目的Models文件夹中的nuget包?

如果您是,那么您的每个项目都将拥有它自己独立的PetaPoco课程,这可能是造成问题的原因。您可以尝试从两个项目中卸载PetaPoco,创建第三个项目,将PetaPoco nuget项目安装到该项目,然后在另外两个项目中引用该项目。