私はこのような多くの方法があります:EF4のコンテキスト作成
public IEnumerable<Director> GetAllDirectors()
{
using (var dbContext = new BodModelContainer())
{
return dbContext.Members.OfType<Director>().ToList();
}
}
..orこれを...
public Member GetMemberById(int memberId)
{
using(var dbContext = new BodModelContainer())
{
return dbContext.Members.Find(new[] {memberId});
}
}
またはその:
public SomeType GetOrDoSomethingWithDbBySomethingElse(T1 t1var, T2, T2 var, ...)
{
using(var dbContext = new BodModelContainer())
{
return dbContext.SomeType.DoSomething();
}
}
は、だから私は、再編成したいですこれらの方法はすべて次のようなものです。
// create db context here
public void InDb(Func<BodModelContainer, out SomeGenericType???> workingWithDb)
{
using(var dbContext = new BodModelContainer())
{
workingWithDb(dbContext);
}
}
// using it like
public Member GetMemberById(int memberId)
{
InDb((dbContext) =>
{
return dbContext.Members.Find(new[] { memberId });
});
}
質問は:そのような一般的なInDb
方法を作るためにどのように、あなたが記述しているように見える実際の問題は、あなたがの戻り値の型を設定する方法を見つけ出すことができないという事実であるSomeGenericType???
これは読めない抽象度のように見える – Eranga
Eranga、いくつかのソースが編集されました。今はもっと読みやすいですか?それとも悪い考えですか? –