小编use*_*467的帖子

从数据库获取提供程序信息时发生错误

得到错误:

System.Data.ProviderIncompatibleException:从数据库获取提供程序信息时发生错误.这可能是由实体框架使用不正确的连接字符串引起的.
检查内部异常以获取详细信息,并确保连接字符串正确.
---> System.Data.ProviderIncompatibleException:提供程序未返回ProviderManifestToken字符串.
---> System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:25 - 连接字符串无效)

尝试做的时候我得到了同样的错误 Add-Migration

这是我的连接字符串,我需要访问我的本地SQL服务器而不是SQLEXPRESS.

  <connectionStrings>
    <add name="ReaderInsightDbContext" 
         connectionString="data source=localhost\MSSQLSERVER;
                         initial catalog=ReaderInsight;Integrated Security=True" 
         providerName="System.Data.SqlClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我的DB位于:

C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
Run Code Online (Sandbox Code Playgroud)

所以我的实例是MSSQLSERVER.不确定发生了什么.它首先工作正常,但在我改变我的代码以使用UOW模式后,这种情况正在发生.我还从EF 4.3升级到EF5.同样的问题.

我尝试了连接字符串中的数据源的许多变体,没有工作,这里有一些例子:

  • 本地主机\ MSSQLSERVER
  • \ MSSQLSERVER
  • //本地主机\ MSSQLSERVER
  • (本地)\ MSSQLSERVER
  • 127.0.0.1\MSSQLSERVER

如果我这样做.\ SQLEXPRESS它的工作原理.

entity-framework connection-string ef-migrations

9
推荐指数
2
解决办法
4万
查看次数

实体框架5使用SaveChanges添加审核日志

似乎直接覆盖EF中的SaveChanges以添加审计记录器.请参阅ApplyAuditLogging方法以设置下面的审计属性(创建,创建,更新,更新).

   public override int SaveChanges()
    {
        var autoDetectChanges = Configuration.AutoDetectChangesEnabled;

        try
        {
            Configuration.AutoDetectChangesEnabled = false;
            ChangeTracker.DetectChanges();
            var errors = GetValidationErrors().ToList();
            if(errors.Any())
            {
                throw new DbEntityValidationException("Validation errors were found during save: " + errors);
            }

            foreach (var entry in ChangeTracker.Entries().Where(e => e.State == EntityState.Added || e.State == EntityState.Modified))
            {
                ApplyAuditLogging(entry);
            }

            ChangeTracker.DetectChanges();

            Configuration.ValidateOnSaveEnabled = false;

            return base.SaveChanges();
        }
        finally
        {
            Configuration.AutoDetectChangesEnabled = autoDetectChanges;
        }
    }

    private static void ApplyAuditLogging(DbEntityEntry entityEntry)
    {

        var logger = entityEntry.Entity as IAuditLogger;
        if (logger == null) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework savechanges

6
推荐指数
1
解决办法
1万
查看次数