2009-04-28 40 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(max)列做的,所以我测试了其中还包含了VARBINARY(max)列的表的测试数据库生成代码,它完美地工作。

由于这个错误,我必须注释掉这个ReportFiles方法。任何人都知道这件事?这对我来说很神秘。任何解决方法?非常感谢。

+0

我遇到了这个问题与我的表('TransactionCode','关键字')中的某些字段。也许Rob Conery或者其中一个SubSonic大师可以回答。 – kntcnrg 2009-07-27 15:37:42

回答

1

这听起来像是与已经声明的名称空间之一的命名冲突。也许你看到的错误并没有告诉你全部的真相。您可能需要在web.config中使用regexDictionaryReplace将列重命名为非冲突的值。

0

要解决此服务器端错误你只需要添加下面的命名空间,

using System.Linq; 

在源代码的顶部,并确保你已经到了System.Core程序集的引用。

相关问题