C# NPoco fetchOneToMany错误
我尝试使用Npco的fetchOneToMany方法将对象映射为嵌套对象列表,如下所示: 以下是查询:C# NPoco fetchOneToMany错误,c#,sql,petapoco,npoco,C#,Sql,Petapoco,Npoco,我尝试使用Npco的fetchOneToMany方法将对象映射为嵌套对象列表,如下所示: 以下是查询: List<Ingredient> list = db.FetchOneToMany<Ingredient, IngredientLang>(x => x.Id, @"SELECT ing.*, lang.* FROM SDS_INGREDIENTS_ING ing LEFT
List<Ingredient> list = db.FetchOneToMany<Ingredient, IngredientLang>(x => x.Id,
@"SELECT ing.*,
lang.*
FROM SDS_INGREDIENTS_ING ing
LEFT JOIN SDS_INGREDIENTS_LANG lang
ON ing.ING_ID=lang.ING_ID");
Npoco返回以下错误:在类型为:component的对象上找不到类型为ICollection`1的属性,这使我感到困惑,因为类component确实具有类型为IList的属性。我们尝试了List、IList、IEnumerable和几乎所有我们能想到的类型的集合,但都没有成功
你知道可能出了什么问题吗?配料郎不是财产。这是一个领域。
如果你让它成为一种财产,它应该会起作用
public partial class Graph
{
[Reference(ReferenceType.Many, ColumnName = "GraphId",
ReferenceMemberName = "GraphId")]
[Column] public List<Plot> Plots { get; set; }
...
[TableName("Graph")]
[PrimaryKey("GraphId")]
[ExplicitColumns]
public partial class Graph : fooDB.Record<Graph>
{
...
NPoco规则 反斜杠对ing.\*和lang.\*有什么作用?似乎SQL语法无效。对此表示抱歉。我是stackoverflow新手,我使用的是[code]标记,中间的“*”字符由于某种原因不会显示。我通过添加前面的C++风格来解决它。然后我删除了[code]标记,因为我意识到你所要做的就是缩进,但我忘了删除反斜杠。现在已修复。只是问一下,[Ignore]属性也不是问题吗?还是我误解了注释?你完全正确,我们通过添加相应的get/set方法修复了它。我不理解字段和属性之间的区别,这是我的错。我还是C的新手。谢谢!如果我有足够的声誉,我会提高投票率。
public partial class Graph
{
[Reference(ReferenceType.Many, ColumnName = "GraphId",
ReferenceMemberName = "GraphId")]
[Column] public List<Plot> Plots { get; set; }
...
[TableName("Graph")]
[PrimaryKey("GraphId")]
[ExplicitColumns]
public partial class Graph : fooDB.Record<Graph>
{
...
results = tdb.FetchOneToMany<Graph>(g => g.Plots, _plotsByReview, reviewId);
private static string _plotsByReview = @"
select
g.GraphId,
g.GraphName,
g.UserId,
g.Shared,
g.ReviewId,
p.PlotId as Plots__PlotId,
p.GraphId as Plots__GraphId,
p.TagId as Plots__TagId,
p.YAxis as Plots__YAxis,
p.Relabel as Plots__Relabel,
p.Scale as Plots__Scale,
p.MinY as Plots__MinY,
p.MaxY as Plots__MaxY
from [Graph] g
inner join [Plot] p on p.GraphId = g.GraphId
where g.ReviewId = @0
";