我以前从未见过这个错误,它非常令人困惑,我实际上是在尝试做一些事情,我说找到与传入的位置名称和类型匹配的所有位置(只会返回一个):
string name = columns[40];
Location type = db.Locations.Where(l => l.name == name).FirstOrDefault();
Location loc = db.Locations.Where(l => l.name == name && l.type == type.type).FirstOrDefault();
可能有一种更好的方法可以一举完成我想做的事情,但基本上我从列中获取名称(这来自 csv 文件),然后说,让我获取位置信息。在这之后,我说好了,既然我有所有的爵士乐,去给我找一个有这个名字和它的类型的位置。
但我得到了错误:
非静态方法需要一个目标
所有这些代码运行的顶级方法是:
static void Main(string[] args){}
本质上它只是一个控制台应用程序。发生什么了?
- db是上下文类,这应该很明显。
- columns是我从 csv 文件中提取数据,在这种情况下, columns[40] 将类似于“New York”
来自堆栈跟踪的完整错误消息: {“非静态方法需要一个目标。”}
注意:作为“可能的答案”发布的问题在这种情况下没有帮助,因为我运行此代码的主要方法是静态的。
经过进一步调查,我发现名称和类型为空,因此我进行了以下修复:
if (name != null)
{
Location type = db.Locations.Where(l => l.name == name).FirstOrDefault();
Location loc = db.Locations.Where(l => l.name == name && l.type == type.type).FirstOrDefault();
locationNearbyId = loc.id;
// More code
}
唉,我仍然在以下位置收到错误:Location loc = db.Locations.Where(l => l.name == name && l.type == type.type).FirstOrDefault();