Могу ли я клонировать 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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