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]、モデル オブジェクトの 1 つに、実際にはそのオブジェクトのテーブルの一意のキー定義の一部ではない偽の属性があることがわかりました。私が別のオブジェクトの関係をリファクタリングするまで、それらは無害にそこに座っていました。それらを削除すると、列が無効であるというエラーは消えました。

于 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 に答える