Sec*_*ret 3 c# entity-framework
我希望有一个人可以帮助我。我有一个相对简单的程序,它从实体查询数据并将查询绑定到,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();
}
Run Code Online (Sandbox Code Playgroud)
您在里面写的代码Where被转换为SQL。执行此操作的引擎不知道如何转换dataGridView2.SelectedRows[0].Cells[0].Value.ToString()为 SQL。
解决这个问题的简单方法是使该值成为自己的变量
var value = dataGridView2.SelectedRows[0].Cells[0].Value.ToString();
var query = context.mySoftWare
.Where(s => s.Software.Contains(value))
.Select(r => new { r.SID, r.Software, r.Vendor, r.Version });
dataGridView1.DataSource = query.ToList();
Run Code Online (Sandbox Code Playgroud)
现在让我们只希望 sql 引擎知道如何翻译“包含”。
| 归档时间: |
|
| 查看次数: |
3401 次 |
| 最近记录: |