3

我绝对不明白这一点。该列存在于表中,我确保应用程序正在对正确数据库中的正确表执行查询,并且它仍然报告它是无效的列名。

我正在运行 NET 4.0,SQL Server 2008 Express Edition。有没有人有类似的经历?

对同一数据库中同一表中的任何其他列名执行查询非常出色。我今天添加了这个专栏,由于某种原因,我的申请拒绝承认这个专栏的存在。

相关列定义: 在此处输入图像描述

相关代码:

(from x in flightDataContext.FlightDatas
where x.FlightDataId == FlightDataID && x.Departure == true
select new
{
  x.ArrivalStationCode,
  x.ArrivalStationName,
  x.DepartureTime,
  x.DepartureGate
}).SingleOrDefault();
4

3 回答 3

3

我也遇到了同样的问题。您可以尝试以下解决方案。

您应该在数据库更改后更新您的类(将表拖放到 linq to sql 文件),以便可以使用对象名称访问该列。如果仍然存在问题,那么您在列中保存的值大于为列指定的大小。如果您的列是 varchar 类型,请尝试 varchar(MAX)。

于 2013-07-19T11:04:08.373 回答
1

当我遇到这个错误时,我发现我[Key]的一个模型对象上有一些虚假属性,这些属性实际上并不是该对象表的唯一键定义的一部分。他们一直无害地坐在那里,直到我重构了另一个对象的关系。删除它们后,有关列无效的错误就消失了。

于 2016-06-21T21:55:31.813 回答
0

试试这个。在此之前,删除表并再次将表拖到 DBML 文件上并保存 DBML。

var flight=    flightDataContext.FlightDatas.SingleOrDefault(x=>x.FlightDataId == FlightDataID && x.Departure);

现在您可以访问:

  flight.ArrivalStationCode,
  flight.ArrivalStationName,
  flight.DepartureTime,
  flight.DepartureGate
于 2013-07-19T11:41:41.390 回答