C# LINQ语句正在返回“;无效的对象名称";错误
我对林克完全是新手。我只是想做一些简单的事情,但我犯了一个错误: 无效的对象名称“dbo.grupyTowarowe” 我可以在几分钟前发誓这是有效的,我没有改变任何事情 代码如下:C# LINQ语句正在返回“;无效的对象名称";错误,c#,.net,linq,C#,.net,Linq,我对林克完全是新手。我只是想做一些简单的事情,但我犯了一个错误: 无效的对象名称“dbo.grupyTowarowe” 我可以在几分钟前发誓这是有效的,我没有改变任何事情 代码如下: var papier = from GrupyTowarowe in dbContext.grupyTowarowes where GrupyTowarowe.typ == "moneta" select new {
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试着使用它,当它工作时我感到惊讶。我还尝试了多个字段,效果也很好。我得到的印象是,它只适用于一个领域。但事实并非如此。谢谢!出于好奇,我还检查了匿名类是否创建字段或属性。这绝对是一个问题。这也是新的信息。我一直认为这是一个领域。从来没有理由问。