Сначала я довольно новичок в Azure и в коде. У меня есть приложение, которое работает локально. Я опубликовал веб-проект с помощью мастера Visual Studio. Все работало хорошо.
Однако отсутствуют все таблицы БД.
Я посмотрел на строку подключения, которая имеет "DefaultConnection". Локально это «Сервер = (localdb) \ ...».
В лазури он выглядит как «Источник данных = tcp: Sniipedb.database.windows.net, 1433»
У меня есть инициализатор БД, который заполняет данные, но работает только локально.
Я полагаю, мой AppDBContext должен был создать базу данных.
Фактическая ошибка на сайте в сети: «SqlException: Неверное имя объекта« Пользователи ».
System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, bool breakConnection, действие wrapCloseInAction) "
Когда я смотрю в БД, таблиц нет.
Я делаю простое приложение по дому. Users - это таблица БД.
Для создания пользователей у меня есть следующее:
в startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddTransient<IUserRepository, UserRepository>();
services.AddTransient<ITaskRepository, TaskRepository>();
services.AddMvc();
}
в AppDBContext: DbContext
public DbSet<User> Users {Get; set;}
Пользователь - простой класс
public class User
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Key]
public string EMailAddress { get; set; }
public ICollection<UserTask> UserTasks { get; set; }
}
У меня есть DBInitializer, который запускает новых пользователей и сохраняет контекст.
Это работает безупречно на локальной машине.