Могу ли я клонировать DbContext из существующего?C#

Место общения программистов C#
Anonymous
Могу ли я клонировать DbContext из существующего?

Сообщение Anonymous »

Я работаю над веб-API .NET Core, и у меня есть одна конечная точка, в которой я хочу параллельно выполнить три операции. Все трое используют одну и ту же базу данных, поэтому мне нужно три копии DbContext. Я создал простой класс Factory, который позже внедрил в свой класс «Данные».

Возможно ли (если это возможно, то это хорошая практика) внедрить DbContext в мой фабричный класс (с использованием встроенного .NET Core IoC), и когда кто-то вызывает метод CreateMyDbContext, просто глубоко клонируйте тот, который был введен в начале?

РЕДАКТИРОВАТЬ:
Вот пример с пулом DbContext:

public class FooData : IFooData
{
private readonly Func _func;

public FooData(Func func)
{
_func = func;
}

public async Task GetApples()
{
using (var wrapper = _func())
{
var apples = await wrapper.Context.Apples.FromSqlRaw("SELECT.... complicated query").ToListAsync();
return apples;
}
}

public async Task GetOranges()
{
using (var wrapper = _func())
{
var oranges = await wrapper.Context.Oranges.FromSqlRaw("SELECT.... complicated query").ToListAsync();
return oranges;
}
}
}

public class FooService
{
private readonly IFooData _fooData;

public FooData(IFooData fooData)
{
_fooData = fooData;
}

public async Task GetFruits()
{
var appleTask = _fooData.GetApples();
var orangeTask = _fooData.GetOranges();

(var result1, var result2) = await (appleTask, orangeTask).WhenAll();

// ...
}
}


Подробнее здесь: https://stackoverflow.com/questions/616 ... isting-one

Вернуться в «C#»