繁体   English   中英

LINQ to SQL:无效的列名称'DepartureGate',即使该列存在

[英]LINQ to SQL: Invalid column name 'DepartureGate', even though the column exists

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

我正在运行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();

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

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

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

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

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

现在您可以访问:

  flight.ArrivalStationCode,
  flight.ArrivalStationName,
  flight.DepartureTime,
  flight.DepartureGate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM