2009-04-28 13 views
2

私の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メソッドをコメントアウトする必要があります。これについて誰でも知っていますか?私にとっては神秘的です。回避策はありますか?どうもありがとう。

+0

テーブルの特定のフィールド( 'TransactionCode'、 'Keyword')でこの問題が発生しています。たぶん、Rob ConeryまたはSubSonic Gurusの1人が答えることができます。 – kntcnrg

+0

このエラーは、 'ReportFile'が配列であることを示唆しているようです。あなたがマウスの上にマウスを置くと、Intellisenseはそれをどのようなタイプと言いますか? 'ReportFile'は静的なプロパティ' Columns'を持つ静的クラスですか?実際に;どのバージョンのSubSonicを使用していますか? SS3を使用している場合、どのT4テンプレートがコードを生成していますか? – CodingWithSpike

答えて

1

既に宣言されている名前空間のいずれかとの名前の競合のように聞こえます。多分あなたの見ているエラーはあなたにすべての真実を伝えていないでしょう。 web.configでregexDictionaryReplaceを使用して、カラムの名前を矛盾しない値に変更する必要がある場合があります。あなただけの、次の名前空間を追加するには、ソースの上部に

using System.Linq; 

、あなたがSystem.Coreアセンブリへの参照を持っていることを確認し、このサーバー側のエラーを解決するには

関連する問題