我将以下编译查询添加到我的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指令或程序集引用?)“
有什么建议吗? 感谢
答案 0 :(得分:0)
我无法在VS2008中重现您的问题。 您使用哪个工具来编译项目?我想在编译期间错过了包含问题中第一部分代码的cs文件。