我正在为我的 Web 应用程序使用 SubSonic 2.1。它一直运行良好,直到最近我在我的 SQL Server 2005 数据库中添加了一个表来存储用户文件(例如 MS Word、PDF、Jpeg、Gif、Tiff 文件)。这些文件存储在名为 ReportFile varbinary(max) 的列中。
在 SubSonic 生成代码后,我构建它,并得到这个错误:
“System.Array”不包含“Columns”的定义,并且找不到接受“System.Array”类型的第一个参数的扩展方法“Columns”(您是否缺少 using 指令或程序集引用?)
违规方法:
public MyWebApp.ReportFileCollection ReportFiles()
{
return newMyWebApp.ReportFileCollection().Where(ReportFile.Columns.ReportID, ReportID).Load();
}
然后,我检查了文件 ReportFile.cs,确实看到 Columns 被定义为结构:
#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(max) 列有关,因此我使用 Test 数据库测试了生成代码,该数据库还包含一个带有 varbinary(max) 列的表,并且效果很好。
由于这个错误,我不得不注释掉这个 ReportFiles 方法。有人知道吗?这对我来说很神秘。任何解决方法?非常感谢。