Linq to sql 作为DataContext分部类添加的LINQ到SQL编译查询不起作用

Linq to sql 作为DataContext分部类添加的LINQ到SQL编译查询不起作用,linq-to-sql,asp.net-mvc-2,Linq To Sql,Asp.net Mvc 2,我已将以下已编译查询添加到ASP.NET MVC 2项目中(作为LINQ to SQL DataContext的部分类定义): IntelliSense确实看到了GetPObyID()函数,VS在代码中没有看到任何错误,但我得到了以下编译错误: “错误CS1061:'MyWebApp.DataAccessLayer.DataObject.MyWebAppDataContext'不包含'GetPObyID'的定义,并且找不到接受类型为'MyWebApp.DataAccessLayer.DataOb

我已将以下已编译查询添加到ASP.NET MVC 2项目中(作为LINQ to SQL DataContext的部分类定义):

IntelliSense确实看到了GetPObyID()函数,VS在代码中没有看到任何错误,但我得到了以下编译错误:

“错误CS1061:'MyWebApp.DataAccessLayer.DataObject.MyWebAppDataContext'不包含'GetPObyID'的定义,并且找不到接受类型为'MyWebApp.DataAccessLayer.DataObject.MyWebAppDataContext'的第一个参数的扩展方法'GetPObyID'(是否缺少using指令或程序集引用?)

有什么建议吗?
谢谢

我无法在VS2008中重现您的问题。
您使用了哪种工具来编译您的项目?我猜在编译过程中,您的问题中包含第一部分代码的cs文件丢失了。

谢谢您的回答。我再次检查了references并重新编译/重建了我的解决方案中的所有8个项目,现在它可以工作了。
namespace MyWebApp.DataAccessLayer.DataObject
{
    public partial class MyWebAppDataContext
    {
        public static Func<MyWebAppDataContext, int, IQueryable<PurchaseOrder>>
            POByID = CompiledQuery.Compile
                ((MyWebAppDataContextcontext, int poID) =>
                context.PurchaseOrders.Where(p => p.ID == poID));

        public IQueryable<PurchaseOrder> GetPObyID(int categoryID)
        {
            return POByID(this, categoryID);
        }
    }
} 
using MyWebApp.DataAccessLayer.DataObject;
...    
...
var context = new MyWebAppDataContext("...connectionstring...");
var MyPOs = context.GetPObyID(3).ToList();