c# - 无法使 MvcMiniProfiler 与 EF4.1 和我们的存储库模式一起使用

标签 c# .net asp.net-mvc asp.net-mvc-3 mvc-mini-profiler

我们在尝试让 MvcMiniProfiler 与我们的存储库模式的 EF 实现一起工作时遇到了很多问题。

错误:

The entity type CustomEntityPewPewFooFoo is not part of the model for the current context.

好的。这是我们完成的代码。

自定义 UnitOfWork 上下文类

public class UnitOfWork : DbContext
{
    public UnitOfWork(string connectionString) 
        : base(GetProfiledConnection(connectionString))
    { }

    private static DbConnection GetProfiledConnection(string connectionString)
    {
        var parsedConnectionString = new
            EntityConnectionStringBuilder(connectionString);
        var connection = new
            SqlConnection(parsedConnectionString.ProviderConnectionString);
        return ProfiledDbConnection.Get(connection);
    }

    public void Commit() { ... }
}

添加出厂设置内容...

// NOTE: If this is not added, I get an error:
//      Unable to find the requested .Net Framework Data Provider.
//      It may not be installed.
// In web.config ...
<system.data>
    <DbProviderFactories>
      <remove invariant="MvcMiniProfiler.Data.ProfiledDbProvider" />
      <add name="MvcMiniProfiler.Data.ProfiledDbProvider" invariant="MvcMiniProfiler.Data.ProfiledDbProvider" description="MvcMiniProfiler.Data.ProfiledDbProvider" type="MvcMiniProfiler.Data.ProfiledDbProviderFactory, MvcMiniProfiler, Version=1.7.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
    </DbProviderFactories>
  </system.data>

最后,添加这些额外的东西....

// global.asax, in Application_Start().. because I'm caching
// some database data on startup.

var factory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings[0].ConnectionString);
var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory);
Database.DefaultConnectionFactory = profiled;

LoadApplicationDataToBeCachedForAllRequests(); // Go and hit the Db! Go Forth!!!

我的连接字符串...

<connectionStrings>
    <clear />
    <add name="XWing_SqlServer_EF" connectionString="metadata=res://*/SqlServer.XWingModel.csdl|             
         res://*/SqlServer.XWingModel.ssdl|             
         res://*/SqlServer.XWingModel.msl;provider=System.Data.SqlClient;              
         provider connection string='Data Source=Tarantino;Initial Catalog=XWing;Integrated Security=SSPI;MultipleActiveResultSets=True;'" 
         providerName="System.Data.EntityClient" />
  </connectionStrings>

最后(再次),然后是 edmx 信息 ..

- Entity Container Name: XWingEntities
- Namespace: XWing.Repositories.SqlServer
- Filename: XWingModel.edmx

最佳答案

可能您遇到了与我相同的问题 here .基本上,如果 UnitOfWork 类与 edmx 不在同一个程序集中,它将无法工作。

关于c# - 无法使 MvcMiniProfiler 与 EF4.1 和我们的存储库模式一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157877/

相关文章:

.net - 两个 .NET 项目,一个 DB 连接字符串?

c# - .net 应用程序在内存中的大小

asp.net-mvc - AccountController.SendCode 和VerifyCode 的作用是什么?

c# - 带有路由 id 参数的 Html.BeginForm 并在提交时获取参数?

javascript - $(...).autocomplete 不是函数错误

c# - Entity Framework 正在尝试在数据库上查找已删除的外键

c# - .NET 中的递归正则表达式? (?R)

c# - 用于测量单位的 wpf 字符串格式 c#

javascript - 在线测试系统asp.net mvc

c# - 无需服务器即可存储在文件中的最佳数据库系统选项?