【发布时间】:2015-10-14 13:54:49
【问题描述】:
我的场景:
我将 EF7 用于标准 CRUD 操作,将 Dapper 用于需要提高速度的更复杂的查询。从 startup.cs 我将我的DbContext 注入我的 DAL 中,这显然会执行数据库查询。 Dapper 需要一个连接字符串。我想将我的 EF7 DbContext 连接字符串注入 Dapper 查询。
我的问题:
如何像以前一样从 DbContext 中获取连接字符串:DbContext.Database.Connection?
它在 EF7 中从 Database 更改为 DatabaseFacade 类型,随之,DbConnection Connection 也被删除了。
DbContext 中肯定应该有一些我可以查询的持久连接字符串?
我的研究:
我目前使用的方法是,并且有效:
public partial class CustomContext : DbContext
{
public readonly string _connectionString;
public CustomContext (DbContextOptions options)
: base(options)
{
_connectionString = ((SqlServerOptionsExtension)options.Extensions.First()).ConnectionString;
}
}
我知道它仍处于测试阶段,但我是否遗漏了什么?
感谢您的宝贵时间。
【问题讨论】:
-
仅供参考,我正在使用 EF7 的 beta7。
-
旁注:您应该考虑使用 .FromSql(query) 和 .AsNoTracking() 方法来提高 EF 的查询速度,这样您就不需要在一个项目中使用 Dapper + EF。
-
你引导我正确。这适用于 me.ctor: public DbContext(DbContextOptions
options) : base(options) { this.Database = new DatabaseFacade(this); }
标签: c# asp.net-core asp.net-core-mvc entity-framework-core