System. Data.SqlClient.SqlException: 'Недопустимое имя объекта 'fieldName''
Похоже, это потому, что я пытаюсь сделать свой PartsDbContext использует ту же базу данных, что и мой ApplicationDbContext, который используется с Identity. Мне нужно знать, как настроить второй контекст базы данных для работы с ядром EF, которое использует/создает другую базу данных.
Я пытался создать вторую строку подключения, но возникла такая ошибка:
System.Data.SqlClient.SqlException: 'Невозможно открыть базу данных «PartsDb», запрошенную при входе в систему. Не удалось войти в систему.
Не удалось войти в систему для пользователя «DESKTOP-4VPU567\higle».
Вот мой код:
appsettings.json
Код: Выделить всё
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-PrecisionCustomPC-b14db89e-86ad-4855-a17f-ac64a04339aa;Trusted_Connection=True;MultipleActiveResultSets=true",
"PartsConnection": "Server=(localdb)\\mssqllocaldb;Database=PartsDb"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
Код: Выделить всё
public class PartsDbContext : DbContext
{
public DbSet
Towers { get; set; }
public DbSet Motherboards { get; set; }
public PartsDbContext(DbContextOptions options)
: base(options)
{
}
}
Код: Выделить всё
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
services.AddEntityFramework()
.AddDbContext
(options =>
options.UseSqlServer(Configuration.GetConnectionString("PartsConnection")));
services.AddMvc();
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAdminRole", policy => policy.RequireRole("Admin"));
});
// Add application services.
services.AddTransient();
services.AddTransient();
}
Код: Выделить всё
[Authorize(Policy = "RequireAdminRole")]
public class AdminController : Controller
{
private readonly PartsDbContext _context;
public AdminController(PartsDbContext context)
{
_context = context;
}
public IActionResult Index()
{
return View();
}
public IActionResult Towers()
{
var model = _context.Towers.ToList();
return View(model);
}
}
Еще раз. Я хочу настроить PartsDbContext для работы с Entity Framework Core таким образом, чтобы EF-Core автоматически создавал базу данных.
Подробнее здесь: https://stackoverflow.com/questions/437 ... dbcontexts