我绝对不会这样。该列存在于表中,我已确保应用程序正在针对正确数据库中的正确表执行查询,并且仍然报告它是无效的列名。
我正在运行.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();
答案 0 :(得分:3)
我也遇到了同样的问题。您可以尝试以下解决方案。
您应该在数据库更改后更新类(将表拖放到linq到sql文件),以便可以使用对象名访问该列。如果还存在问题那么 您在coloumn中保存的值大于为coloumn指定的大小。如果您的coloumn是varchar类型,请尝试varchar(MAX)。
答案 1 :(得分:1)
当我遇到这个错误时,我发现我的一个Model对象上有一些虚假的[Key]
属性,这些属性实际上并不是该对象表的唯一键定义的一部分。他们一直无害地坐在那里,直到我重新构建了另一个对象的关系。删除后,有关列无效的错误消失了。
答案 2 :(得分:0)
试试这个。在此之前,删除表并在DBML文件上再次拖动表格并保存DBML。
var flight= flightDataContext.FlightDatas.SingleOrDefault(x=>x.FlightDataId == FlightDataID && x.Departure);
现在您可以访问:
flight.ArrivalStationCode,
flight.ArrivalStationName,
flight.DepartureTime,
flight.DepartureGate