尝试使用PetaPoco动态加入POCO?

时间:2011-11-18 00:09:03

标签: c# join dynamic poco petapoco

有~100个父表,所有表都以RECID作为其标识列。没有两个父母包含相同的RECID。有一个带有外键的子表,RECID。

我尝试使用以下想法,根据用户需求,100个表域中的模糊变化:

var stuff = _d.Query<dynamic, sameAgain, dynamic>(
    new Relator().relatem,
    "select * from nebulous as n left join sameAgain on n.RECID = RECID"
    );
...
class dynamic Relator {
    relatem(dynamic parent, sameAgain child)
    {
       // inspired by the most recent blog Multi-POCO in PetaPoco

       ... (parent as IDictionary<string, object>)["RECID"] ...
    }
} 

没有骰子。我进入那里并感到困惑,因为调试器显示的对象不是父级的ExpandoObjects。所以我尝试用ExpandoObject替换动态。

仍然没有骰子。所以它仍然是一个有趣的死胡同。有人试过吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,PetaPoco会在PetaPoco.cs文件顶部使用“#define PETAPOCO_NO_DYNAMIC”禁用动态功能。如果要使用动态功能,请注释掉该行并重建(这当然需要.net 4.0)。如果启用了动态功能并且查询成功,则在调试而不是对象时,记录将显示为ExpandoObject。