私のWebアプリケーションにSubSonic 2.1を使用しています。最近まで、SQL Server 2005データベースにユーザーファイル(MS Word、PDF、Jpeg、GIF、Tiffファイルなど)を格納するテーブルを追加しました。ファイルは、ReportFile varbinary(max)という列に格納されます。ビルドエラー: 'System.Array'に 'Columns'の定義がありません。
亜音速のコードを生成した後、私はそれを構築し、このエラーを取得:
「のSystem.Array」タイプの最初の引数を受け入れる「列」と拡張子なしのメソッド「列」の定義が含まれていません。 「のSystem.Array」を見つけることができる(あなたがusingディレクティブまたはアセンブリ参照が不足している?)
問題のある方法:
public MyWebApp.ReportFileCollection ReportFiles()
{
return newMyWebApp.ReportFileCollection().Where(ReportFile.Columns.ReportID, ReportID).Load();
}
その後、私は、ファイルReportFile.csをチェックし、その列を参照しています構造体として定義されます:
#region Columns Struct
public struct Columns
{
public static string ReportFileID = @"ReportFileID";
public static string FileName = @"FileName";
public static string ReportID = @"ReportID";
public static string MimeType = @"MimeType";
public static string FileSize = @"FileSize";
public static string FileData = @"FileData";
public static string UploadDate = @"UploadDate";
}
#endregion
私はそれをvarbinary型(最大)列に関係していて思っていたので、私はまた、varbinary型(最大)の列を持つテーブルが含まれているテストデータベースで生成コードをテストし、それは完全に働きました。
このエラーのため、このReportFilesメソッドをコメントアウトする必要があります。これについて誰でも知っていますか?私にとっては神秘的です。回避策はありますか?どうもありがとう。
テーブルの特定のフィールド( 'TransactionCode'、 'Keyword')でこの問題が発生しています。たぶん、Rob ConeryまたはSubSonic Gurusの1人が答えることができます。 – kntcnrg
このエラーは、 'ReportFile'が配列であることを示唆しているようです。あなたがマウスの上にマウスを置くと、Intellisenseはそれをどのようなタイプと言いますか? 'ReportFile'は静的なプロパティ' Columns'を持つ静的クラスですか?実際に;どのバージョンのSubSonicを使用していますか? SS3を使用している場合、どのT4テンプレートがコードを生成していますか? – CodingWithSpike