код первый. Ядро публикации .net не имеет таблиц базы данных - PullRequest
0 голосов
/ 29 октября 2018

Сначала я довольно новичок в 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, который запускает новых пользователей и сохраняет контекст.

Это работает безупречно на локальной машине.

1 Ответ

0 голосов
/ 29 октября 2018

Решением для меня было настроить мою публикацию. В настройках у него есть опция «Базы данных», где «Использовать эту строку подключения во время выполнения» было отключено.

Также в разделе «Миграции Entity Framework» флажок «Применить эту миграцию при публикации» был снят.

Проверив эти два, затем сохранив и опубликовав, это сработало.

...