2

我有一个名为 Event 的对象,而 event 有一些其他的链接表。

[PetaPoco.ResultColumn]
public Models.User Presenter { get; set; }

Petapoco 通过在我使用时获取我的对象来完成一项出色的工作:

evt = db.Fetch<Models.Event, Models.User>(";EXEC GetEventDetails @id", new { id = id });

这给我带来了带有演示者数据的事件。

但问题是我的查询“可用座位”中还生成了一列此列链接到对象,如下所示:

[PetaPoco.ResultColumn]
public string AvailableSeats { get; set; }

问题是:当我使用 db.Fetch 时,可用席位为空。我现在的解决方案是:

evt = db.Fetch<Models.Event>(";EXEC GetEventDetails @id", new { id = id })[0];
evt.Presenter = db.FirstOrDefault<Models.User>("WHERE id=" + evt.PresenterId);

但我真的不喜欢这个。它应该全部在一行代码中。

这是一个 petapoco 错误,还是我在那里做错了什么?

4

1 回答 1

1

我的猜测(不看幕后)是 PetaPoco 仅在您进行多连接时填充相应的表字段,因为它需要猜测每个表的女巫字段匹配。

我对这些类型的连接的建议是让 ViewModel 对象仅具有所需的属性。这更清晰、更快速,只需要几分钟。

于 2012-08-13T13:12:50.067 回答