我的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语句中包含IgnoreMe
和Pages
属性。我还尝试设置[ExplicitColumns]
,但它仍尝试包含所有内容。
我创建了一个新的web api项目并输入完全相同的代码和Peta Poco版本,它忽略了列。我使用VS 2017和Web Api模板与完整的.NET Framework(不是核心)。它与新项目合作。另一个项目也不老,但有什么东西可以防止PetaPoco Ignore无法正常工作
我发现如果我在两个不同的项目中安装了PetaPoco nuget包,而另一个项目引用了另一个项目,这就是打破它的原因。问题是我需要安装PetaPoco,因为我需要一个项目的属性,我需要查询其他的东西
答案 0 :(得分:0)
很奇怪。您确定您使用的Ignore属性是PetaPoco属性而不是来自不同库的属性吗?将鼠标悬停在属性上并检查该类是否为PetaPoco.IgnoreAttribute。
您也可以尝试使用[ResultColumn]属性(尽管Ignore应该正常工作)。
编辑 - 另一个可能的答案
刚刚看到您的编辑说当PetaPoco nuget包安装到两个单独的项目中时会出现问题。您是否正在使用将PetaPoco.cs类文件放在每个项目的Models文件夹中的nuget包?
如果您是,那么您的每个项目都将拥有它自己独立的PetaPoco课程,这可能是造成问题的原因。您可以尝试从两个项目中卸载PetaPoco,创建第三个项目,将PetaPoco nuget项目安装到该项目,然后在另外两个项目中引用该项目。