【发布时间】:2018-01-30 19:40:49
【问题描述】:
我希望有人可以帮助我。我有一个相对简单的程序,可以从实体查询数据并将查询绑定到dataGridView1,但我遇到了以下错误,我试图在 30 多分钟内解决但没有进展。
System.NotSupportedException: 'LINQ to Entities 无法识别方法'System.Windows.Forms.DataGridViewCell get_Item(Int32)' 方法,并且此方法无法转换为存储表达式。'
using (var context = new myContext())
{
var query = context.mySoftWare
.Where(s => s.Software.Contains(dataGridView2.SelectedRows[0].Cells[0].Value.ToString()))
.Select(r => new {r.SID, r.Software,r.Vendor,r.Version });
dataGridView1.DataSource = query.ToList();
}
【问题讨论】:
-
您不能在实体查询中混合使用数据库数据库级代码和“应用程序”代码。它不知道如何将应用程序代码转换为数据库可以理解的内容。
-
您应该在查询之前将
dataGridView2.SelectedRows[0].Cells[0].Value.ToString()拉出到一个简单的变量中,并在查询中使用该变量。 -
这已经被问了数百万次了。您只需搜索“LINQ to Entities 无法识别该方法”。
标签: c# entity-framework