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

时间:2011-07-20 08:56:30

标签: linq-to-sql asp.net-mvc-2

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

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);
        }
    }
} 

要获取PurchaseOrder列表,我在控制器中使用此代码:

using MyWebApp.DataAccessLayer.DataObject;
...    
...
var context = new MyWebAppDataContext("...connectionstring...");
var MyPOs = context.GetPObyID(3).ToList();

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

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

有什么建议吗? 感谢

1 个答案:

答案 0 :(得分:0)

我无法在VS2008中重现您的问题。 您使用哪个工具来编译项目?我想在编译期间错过了包含问题中第一部分代码的cs文件。