Try either changing your statement to:
SELECT VALUE AS CODE, DESCRIPTION FROM CODEMAP
or specifiying the "VALUE" property as the keyProperty parameter like this:
QueryForDictionary<int,string>("TestQueryForDictionary", null, "VALUE")
On May 7, 2010, at 3:55 AM, tech fan wrote:
> Hi, thanks for the info.
>
> The table contains just 2 columns, 'value': int, 'description': varchar.
>
> Here is the map:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <sqlMap namespace="TestParameters" xmlns="http://ibatis.apache.org/mapping"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <statements>
>
> <select id="TestQueryForDictionary">
> SELECT VALUE, DESCRIPTION FROM CODEMAP
> </select>
>
> </statements>
> </sqlMap>
>
> Here is the code:
> [Test]
> public void Test_QueryForDictionary()
> {
> IDictionary<int, string> r = _db.QueryForDictionary<int,
> string>("TestQueryForDictionary", null, "CODE");
> Assert.That(r.Count, Is.EqualTo(2));
> }
> I got an error like this:
> IBatisNet.Common.Exceptions.ProbeException : There is no Get member named
> 'CODE' in class 'Object[]'
> I guess I need to put resultClass parameter or something in the map, but I
> don't want to create a type for that :(
>
> Regards,
> tc.
> On Thu, May 6, 2010 at 11:02 PM, Dave Curylo <[email protected]> wrote:
> Can you include a snippet of your code? QueryForDictionary should do what
> you described without the need to create a new class.
>
> From: tech fan
> Sent: Thursday, May 06, 2010 4:26 PM
> To: [email protected]
> Subject: QueryForDictionary<K,V>, do I really have to creae a class for this?
>
> Hi,
>
> I have a table with just a integer as pk and a string as description. I need
> to retrieve all data into a IDictionary<int, string>(this table is human
> mantained), but I really don't want to creaet a class just for this simple
> task. But it seems QueryForDictionary converts the result to an object before
> I can access it. Is there any solution to this? I tried to use set the result
> class to System.Collections.Generic.Dictionary`2[System.UInt16,System.String]
> with no luck.
>
> Thanks a have a nice day.
> tc.
>