在调用ExecuteSprocAccessor时,是否可以告诉EntLib忽略业务对象中的属性?

时间:2010-11-21 21:45:36

标签: .net object enterprise-library

假设我有一个具有5个属性的业务对象和一个返回4列的sproc,其中名称与这些属性中的4个匹配。对ExecuteSprocAccessor的调用将失败。有没有办法可以用属性标记第5个属性,例如,告诉EntLib忽略它?

1 个答案:

答案 0 :(得分:1)

您可以在创建映射器时执行此操作。基本上,这样的事情:

var results = db.ExecuteSprocAccessor("some_sproc",
    MapBuilder<MyTargetType>.MapAllProperties()
        .DoNotMap("SomethingThatDoesntMatch")
        .Build(),
    param1, param2, param3);

这将按名称将所有参数与结果匹配,但不会将任何内容映射到属性SomethingThatDoesntMatch。

需要注意的事项:MapBuilder创建结果集映射器有点贵,并且不会自动缓存。如果你在循环中进行这个调用,它可能会很慢。我建议提前创建映射器并保持它,或者单独创建访问器并保持访问器。