1つのプロジェクトにDLLを書き込むと、LINQをSQLに使用し始めました。私は理由を理解するが、私は私が私のメインのプロジェクトメソッドのクエリの結果をアセスすることができますかわからないんだけど、それが配置されたので、私はDataContextのをアセスすることができないことをdisovered:LINQ to SQLはDataContextの後にクエリを使用します。
DLL
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
いいえ、コンテキストが長い期間存在することを意味するものではなく、代わりに提案されたソリューションを使用してください – ntziolis