Ошибка строки соединения EF Core DbContext sql (пробовал после информации в MS Docs) - PullRequest
0 голосов
/ 08 марта 2019

У меня есть приложение .net Core, и я пытался прочитать из моего локального экземпляра SQL Server (2014) с проверкой подлинности Windows и продолжаю сталкиваться с повторяющейся ошибкой в ​​строке подключения. Я просматривал документы MSDN, а также connectionstrings.com и подумал, что все настроено правильно.

Это моя ошибка:

"System.ArgumentException: 'Формат строки инициализации не соответствует спецификации, начиная с индекса 0. '"

Что я имею в виду в самом начале моей строки подключения.

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

Вот что я пытаюсь сделать, когда происходит ошибка:

public class HomeController : Controller
{
  private ModelContext _context;

  public HomeController()
  {}

  public IActionResult Index()
  {
      var viewModel = new HomeViewModel();

      var optionsBuilder = new DbContextOptionsBuilder<ModelContext>();
      optionsBuilder.UseSqlServer("DefaultConnection");

      using (_context = new ModelContext(optionsBuilder.Options))
      {
        >>>>>> viewModel.List = _context.TableName.ToList(); <<<<<<<<

В моем файле "appsettings.json" есть следующее:

"ConnectionStrings": {
    "DefaultConnection": "Server=MyComputerName; Database=DBName; IntegratedSecurity=SSPI;"
 },

В моем файле "ModelContext.cs"

public class ModelContext : DbContext
{
  public ModelContext(DbContextOptions<ModelContext> options)
      :base(options)
  { }

  [<Table Properties>]

  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  {
      optionsBuilder.UseSqlServer("DefaultConnection");
  }

И «Startup.cs» Файл:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
         Configuration = configuration;
    } 

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        services.AddDbContext<ModelContext>(options =>   
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    }

Спасибо, что заглянули!

1 Ответ

0 голосов
/ 08 марта 2019

После долгих размышлений и повторного просмотра сайта MS Documents для EF Core DbContext я обнаружил, что пытался реализовать ВСЕ 3 метода конфигурации DbContext: аргумент конструктора, OnConfiguring и внедрение зависимостей.

Решили использовать OnConfiguring для запуска приложения.

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