Я передаю строку подключения своим классам сущностей через параметр в конструкторе, например:
public class Site : ISite
{
private readonly string _connectionString;
public Site(string connectionString)
{
_connectionString = connectionString;
}
Исключение выдается, когда я запрашиваю базу данных следующим образом:
var site = db.Sites.FirstOrDefault(s => s.Name.Equals(name));
Исключение:
InvalidOperationException: The class 'AuctionSite.Site' has no parameterless constructor.
Согласно сообщению, которое я нашел на этой ветке, документация гласит:
Должен быть конструктор без параметров
Если я создаю конструктор без параметров, строка подключения не будет установлена, и когда я создаю контекст внутри метода, например:
public IEnumerable<IUser> GetUsers()
{
using (var db = new SiteContext(_connectionString))
{
return db.Users;
}
}
_connectionString
будет null
и завершится ошибкой при вызове базового конструктора DbContext.
Как передать строку подключения моим классам сущностей, если не через конструктор?
Есть ли лучший способ сделать это?
Может быть, путем материализации сущности с моей строкой соединения в качестве параметра или с лучшим запросом?