gpt4 book ai didi

c# - LINQ to Entities 无法识别方法 get_Item(Int32)

转载 作者:行者123 更新时间:2023-12-04 16:46:37 30 4
gpt4 key购买 nike

我希望有人可以帮助我。我有一个相对简单的程序,它从实体查询数据并将查询绑定(bind)到 dataGridView1 但我得到了以下错误,我试图解决超过 30 分钟而没有进展。

System.NotSupportedException: 'LINQ to Entities does not recognize the method 'System.Windows.Forms.DataGridViewCell get_Item(Int32)' method, and this method cannot be translated into a store expression.'

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();
}

最佳答案

您在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();

现在让我们希望 sql 引擎知道如何翻译“包含”。

关于c# - LINQ to Entities 无法识别方法 get_Item(Int32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48529316/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com