【发布时间】:2015-11-02 11:08:22
【问题描述】:
我对这段 sn-p 代码有疑问。我使用 LinQ 来实体化
Dictionary<string, int> dictionary = new Dictionary<string, int>();
using (var db = new DiagEntities())
{
PropertyInfo[] properties = typeof(DiagTab).GetProperties();
foreach (PropertyInfo property in properties)
{
string name = property.Name;
if (name == "ID_Diag") { continue; } // no column 1 and 2
if (name == "Reponse") { continue; }
Func<DiagTab, byte> accessor = (Func<DiagTab, byte>)property
.GetMethod
.CreateDelegate(typeof(Func<DiagTab, byte>));
int sum = db.DiagTabs.Sum(p => accessor(p)); // invoke error
dictionary.Add(name, sum);
}
bouba.DataSource = dictionary;
bouba.DataBind();
编译我有这个错误出现在这一行,我不明白为什么:
int sum = db.DiagTabs.Sum(p => accessor(p))
LINQ to Entities 不支持节点类型“Invoke”LINQ 表达式
你能帮我解决这个问题吗?我应该使用 LINQkit 还是其他?
【问题讨论】:
-
你确定这是编译错误吗?
-
对不起,我在 VS 2015 上。当我运行我的网页测试软件时挂起并指定我这个错误并突出显示代码行。我看不到我的网页。
标签: c# entity-framework linq lambda