Я изо всех сил пытался заставить последний ОБРАЗЕЦ (ASP.Net, EF Core, SQL) работать на реальном SQL Server.Каждый образец, который я могу найти, не использует реальный SQL, который они всегда выбирают для хранения данных в памяти
Я изменил строку подключения
"Data Source=.;Initial Catalog=IS4;Integrated Security=True;"
и запустил
dotnet ef database update -c ApplicationDbContext
Это создало мне базу данных SQL с 25 таблицами.
Я настроил Startup.cs, чтобы изменить
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
и b.UseSqlite на b.UseSqlServer
.AddConfigurationStore(options =>
{
options.ConfigureDbContext = b =>
b.UseSqlServer(connectionString,
sql => sql.MigrationsAssembly(migrationsAssembly));
})
// this adds the operational data from DB (codes, tokens, consents)
.AddOperationalStore(options =>
{
options.ConfigureDbContext = b =>
b.UseSqlServer(connectionString,
sql => sql.MigrationsAssembly(migrationsAssembly));
// this enables automatic token cleanup. this is optional.
options.EnableTokenCleanup = true;
// options.TokenCleanupInterval = 15;
});
Iзапустил сервер с параметром "/ seed" в командной строке, но функция Seed не работает
Сначала он жалуется, что у CLIENT не может быть NULL ID, когда он вызывает SaveChanges ().Если я изменю код для добавления идентификатора
if (!context.Clients.Any())
{
Console.WriteLine("Clients being populated");
int i = 1;
foreach (var client in Config.GetClients().ToList())
{
var x = client.ToEntity();
x.Id = i++;
context.Clients.Add(x);
}
context.SaveChanges();
}
else
{
Console.WriteLine("Clients already populated");
}
, я получу
"Cannot insert the value NULL into column 'Id', table 'IS4.dbo.ClientGrantTypes".
Когда я смотрю видео, оно говорит, что его можно перенести с SQLite на полный SQL, просто изменивСтрока подключения, которая, очевидно, не соответствует действительности, учитывая все другие изменения, которые я сделал, поэтому я должен делать (или пропускать) что-то еще.
Есть мысли?