为一个项目编写DLL,我刚刚开始使用LINQ to SQL,并将所有方法移到这个新的dll后。我disovered因为它被布置我不能接取的DataContext,我明白为什么,但我不知道我怎样才能接取查询的结果我的主要项目方法这样:在DLLLINQ to SQL在DataContext之后使用查询Dispose
public static IEnumerable<Problem> GetProblemsNewest(int howMuch)
{
using (ProblemClassesDataContext context = new ProblemClassesDataContext())
{
var problems = (from p in context.Problems orderby p.DateTimeCreated select p).Take(howMuch);
return problems;
}
}
我的方法
调用它:
IEnumerable<Problem> problems = ProblemsManipulation.GetProblemsNewest(10);
//Error can't acess it because it was disposed..
这仅仅是第一种方法,我有较大的所以我真的需要一种方法来做到这一点。在DLL中必须有一种使用LINQ to SQL的方法?我知道我可以做点像.ToList
或.ToArray
,但是我不能直接访问行属性,并且不得不引用它作为问题[0],问题[1]等,这比起调用主项目中的代码。
所以我应该只写方法将其置于dll中,并在Im完成主项目中的第一个方法后调用它? – formatc 2012-03-13 20:39:53
不,上下文并不意味着存在更长的时间,而是使用建议的解决方案 – ntziolis 2012-03-13 20:42:08