У меня есть следующий класс, который использует IDatasourcerepository.
public class Project
{
public int Id { get; set; }
public string Name { get; set; }
public async Task<IEnumerable<Datasource>> Datasource([Inject] IDatasourceRepository repository)
{
return Mapper.Map<Datasource[]>(await repository.GetDatasources());
}
}
Определение которого следующее:
public interface IDatasourceRepository
{
Task<IEnumerable<Datasource>> GetDatasources();
}
и интерфейс, реализованный в интерфейсе, выглядит следующим образом.
public class DatasourceRepository : IDatasourceRepository
{
private readonly ProjectContext _context;
public DatasourceRepository(ProjectContext context)
{
_context = context;
}
public async Task<IEnumerable<Datasource>> GetDatasources()
{
return await _context.Datasource.AsNoTracking().ToListAsync();
}
}
В моем файле startup.cs имеется следующее для внедрения.
var projectConnection = @"Project connection string";
services.AddDbContext<ProjectContext>(options => options.UseSqlServer(projectConnection));
services.AddScoped<IDatasourceRepository, DatasourceRepository>();
Я получаю данные Graphql следующим образом.
{
project {
id,
name,
datasource {
id,
name
}
}
}
Теперь таблица источника данных является отдельной в своих собственных базах данных (для каждого проектаодна база данных).
Так что мне нужно передать соответствующие подключения к базе данных.Допустим, для проекта 1 у меня есть строка подключения, например «Initial Catalog = Project_1» и т. Д.
Итак, как мне передать строку подключения проекта (или этот идентификатор проекта, с помощью которого я могу создать подключениестрока) динамически.чтобы я мог получить все источники данных из этой базы данных.