Я внимательно прочитал все ответы на подобные вопросы об этом аргументе, но не нашел решения, подходящего для моей проблемы.
Вкратце: у меня есть решение C # с использованием MySQL и Prism;В моем app.config есть следующий раздел EntityFramework:
<entityFramework>
<defaultConnectionFactory ype="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.12.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings configSource="Connections.config" />
Файл Connections.config содержит следующий код:
<add name="DataContext"
connectionString = "Server=localhost; Port=3306; Database=dbName; uid=<correct user>; pwd=<correct password>" providerName="MySql.Data.MySqlClient"/>
Я уверен, что у меня естьнет опечатки в коде конфигурации, особенно в строке подключения;действительно, миграция кода работает как шарм;но когда я прихожу к самому первому доступу к DataContext, я получаю печально известное сообщение об исключении.Код следующий:
using MyApp.DataAccess;
using System;
using System.Linq;
using System.Security.Principal;
namespace myApp.Core
{
public class UserManager : IUserManager
{
private UserAccessLevels _level;
(...)
private DataContext DataContext { get; }
public UserManager(DataContext dc) { // dc is injected by DI container
DataContext = dc ?? throw new ArgumentNullException(nameof(DataContext));
var winUserId = WindowsIdentity.GetCurrent();
var loginName = winUserId.Name.Substring(winUserId.Name.LastIndexOf('\\') + 1);
// In the following line I have the error:
var usr = DataContext.AppUser.SingleOrDefault(x => x.LoginId == loginName);
Буду очень признателен за любую подсказку или реальное освещение ... спасибо вам всем
Обновление:
в соответствии с запросом следуйте коду моего класса DataContext:
[DbConfigurationType(typeof(MySqlEFConfiguration))]
public partial class DataContext : DbContext
{
(... IDbSets registration ...)
public DataContext() : base("DataContext") {
this.Configuration.ProxyCreationEnabled = false;
}
(... the rest of code ...)
Опять же, помните, что миграции кода работают отлично;это очень странное поведение.