Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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# LINQ语句正在返回“;无效的对象名称";错误_C#_.net_Linq - Fatal编程技术网

C# LINQ语句正在返回“;无效的对象名称";错误

C# LINQ语句正在返回“;无效的对象名称";错误,c#,.net,linq,C#,.net,Linq,我对林克完全是新手。我只是想做一些简单的事情,但我犯了一个错误: 无效的对象名称“dbo.grupyTowarowe” 我可以在几分钟前发誓这是有效的,我没有改变任何事情 代码如下: var papier = from GrupyTowarowe in dbContext.grupyTowarowes where GrupyTowarowe.typ == "moneta" select new {

我对林克完全是新手。我只是想做一些简单的事情,但我犯了一个错误:

无效的对象名称“dbo.grupyTowarowe”

我可以在几分钟前发誓这是有效的,我没有改变任何事情

代码如下:

var papier = from GrupyTowarowe in dbContext.grupyTowarowes
             where GrupyTowarowe.typ == "moneta"
             select new
             {
                 GrupyTowarowe.grupa
             };

dataGridView1.DataSource = papier;

错误显示在DataGridView上。

使用“选择”创建匿名对象时,必须将其分配给字段,以便可以引用

select new
{
   Grupa = GrupyTowarowe.grupa
}
然而,看起来你想要的只是结果。在这种情况下,您不需要创建对象,只需选择返回的对象即可

var papier = from GrupyTowarowe in dbContext.grupyTowarowes
             where GrupyTowarowe.typ == "moneta"
             select GrupyTowarowe;
更正:

匿名类的原始语法是合法的。我已经生活和呼吸了十多年了。我只是从来没有尝试过这种语法。你每天都在学习新东西

更新:


这个答案基本上是错误的,特别是因为OP的错误与实体框架有关,而不是Linq。但我不打算(请随意否决)因为有一些有用的评论可以解释为什么答案是错误的

检查“grupyTowarowe”的模式-如果您移动到其他数据库,则可能会有所不同。例如,您的dev数据库可能将其作为模式“dbo”,但下一个数据库可以在不同的模式下创建您的对象。如果是这种情况,请在SSMS中使用ALTER SCHEMA命令。

正在与之交谈的数据库出现问题,请检查该问题。这与LINQ无关,是实体框架的问题检查此DB对象是否存在于您的数据库中当然存在,正如我在几分钟前所说的,它工作正常“当然存在”错误消息中另有说明。检查连接字符串。确保它指向您认为它指向的数据库。错误不是因为这个@rhaben,即使使用您的解决方案,同样的错误仍然会显示。此外,Takitannick只从对象中选择一个属性。为了将其用作数据源,对于网格,需要将结果包装到具有命名属性的对象中。OP的匿名对象构造函数在语法上是合法的。对于由标识符命名的表达式,如果未指定属性名称,则会隐含属性名称。@rhaben:EF中当然有很多魔力,但您甚至不需要linq来使用该语法。例如,这将创建一个具有值为3的
Length
属性的对象
new{“abc.Length}
是的,我正忙着在我的沙箱里用普通Linq试着使用它,当它工作时我感到惊讶。我还尝试了多个字段,效果也很好。我得到的印象是,它只适用于一个领域。但事实并非如此。谢谢!出于好奇,我还检查了匿名类是否创建字段或属性。这绝对是一个问题。这也是新的信息。我一直认为这是一个领域。从来没有理由问。