Возникла исключительная ситуация при инициализации базы данных.Ошибка входа пользователя при воссоздании после удаления - PullRequest
0 голосов
/ 15 декабря 2018

При первом запуске моя программа правильно создает базу данных и файл журнала в папке пользователя.

Если я затем удаляю базу данных и файл журнала и снова запускаю программу, я получаю сообщение об ошибке.

using System;
using blocks6.Module.BusinessObjects;

namespace BlocksConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                AddToTable();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        private static void AddToTable()
        {
            using (var db = new blocks6DbContext())
            {
                var inf = new ModuleInfo();
                db.ModulesInfo.Add(inf);
                db.SaveChanges();
            }
            Console.WriteLine("Fin");
        }
    }
}

и

using System.Data.Entity;
namespace blocks6.Module.BusinessObjects
{
    public class blocks6DbContext : DbContext
    {
        public blocks6DbContext()
            : base("name=ConnectionString")
        {
          //  Database.SetInitializer(new DbInitializer());  uncommenting makes no difference
        }
        public DbSet<ModuleInfo> ModulesInfo { get; set; }
    }

    public class DbInitializer : CreateDatabaseIfNotExists<blocks6DbContext>
    {
    }

    public class ModuleInfo
    {
        public int Id { get; set; }
    }
}

app.config -

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
<connectionStrings>
  <add name="ConnectionString" connectionString="Integrated Security=SSPI;MultipleActiveResultSets=True;Data Source=(localdb)\mssqllocaldb;Initial Catalog=blocksConsole" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>

Файл проекта

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{477EDA75-B7F0-4D45-866F-0AB92CE38783}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <RootNamespace>BlocksConsole</RootNamespace>
    <AssemblyName>BlocksConsole</AssemblyName>
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="BlocksDbContext.cs" />
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <None Include="App.config" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="EntityFramework">
      <Version>6.2.0</Version>
    </PackageReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Моя ОС Win10 - версия 1809, сборка 17763.194

Перезагрузка не помогает.

[Обновить]

Я создал новую консольную программу на другом компьютере под управлением VS 15.8.1 Программа блокируется на линии

db.ModulesInfo.Add(inf);

Когда я обновился до 15.9.4, блокировка прекратилась.Однако ошибка повторного создания базы данных повторяется и на этом компьютере.

Winver на втором компьютере показывает 1803 17134.471

Очистка корзины не помогает.

1 Ответ

0 голосов
/ 15 декабря 2018

Оказывается, что удаленная база данных по-прежнему отображается как узел в обозревателе объектов SQL Server (внутри Visual Studio)

shows in SQL Server Object Explorer

Если я ее удаляю

delete the database

, затем программа успешно запускается для повторного создания базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...