我对我的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(max)列做的,所以我测试了其中还包含了VARBINARY(max)列的表的测试数据库生成代码,它完美地工作。
由于这个错误,我必须注释掉这个ReportFiles方法。任何人都知道这件事?这对我来说很神秘。任何解决方法?非常感谢。
我遇到了这个问题与我的表('TransactionCode','关键字')中的某些字段。也许Rob Conery或者其中一个SubSonic大师可以回答。 – kntcnrg 2009-07-27 15:37:42