Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 流利的NHibernate:在字典中返回行_C#_Mysql_Asp.net Mvc_Nhibernate_Fluent Nhibernate - Fatal编程技术网

C# 流利的NHibernate:在字典中返回行

C# 流利的NHibernate:在字典中返回行,c#,mysql,asp.net-mvc,nhibernate,fluent-nhibernate,C#,Mysql,Asp.net Mvc,Nhibernate,Fluent Nhibernate,我试图从查询中检索字典作为返回值,然后 我在以下方面运气不太好: IQuery query = session.CreateQuery("SELECT Email, COUNT(Id) as IdCount FROM AccountDataModel WHERE Email = :Email") .SetParameter(":Email", model.Email); IList<T> list = query.List<T

我试图从查询中检索字典作为返回值,然后 我在以下方面运气不太好:

IQuery query = session.CreateQuery("SELECT Email, COUNT(Id) as IdCount FROM AccountDataModel WHERE Email = :Email")
                        .SetParameter(":Email", model.Email); 

IList<T> list = query.List<T>();

IDictionary<string, object> data = list.ToDictionary<string, object>(x => x); //Error, no method argument matches.
ToDictionary方法要求一种Func类型。我找到了Func的定义

看到这一点后,我尝试了以下方法:

list.ToDictionary<string, object>(y => y.As<string>().As<object>());
我在过程中收到一个错误


有没有一种直接的方法可以做到这一点,或者它更像是一种促进它的黑客方法?

我认为您需要在代码IList list=query.list中用实际参数类型代替泛型类型参数T

类似于IList list=query.list

然后,在调用ToDictionary时,指定它的键。即。。
IDictionary data=list.ToDictionaryx=>x.emailId

然而,电子邮件不是一个对象;这是一个字符串。您需要有一个映射到查询结果的Nhibernate会话对象。