Har*_*rji 4 database-connection exists core entity-framework-core
在普通实体框架中,我能够使用dbContext.Database.Exists()检查数据库连接,但在Entity Framework Core中它不存在.实体框架核心中dbContext.Database.Exists()的替代方法是什么?
nmu*_*mur 10
您可以通过以下方法确定数据库是否可用以及是否可以连接CanConnect():
if (dbContext.Database.CanConnect())
{
// all good
}
Run Code Online (Sandbox Code Playgroud)
您可以CanConnectAsync()用于异步操作。
目前(直到最新的EF Core 2.0)DatabaseFacade该类(DbContext.Database属性的类型)不公开公开Exists方法.
但是,EF Core IRelationalDatabaseCreator服务提供了相应的EF6方法.您可以使用自定义扩展方法公开它,如下所示:
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage;
public static class DatabaseFacadeExtensions
{
public static bool Exists(this DatabaseFacade source)
{
return source.GetService<IRelationalDatabaseCreator>().Exists();
}
}
Run Code Online (Sandbox Code Playgroud)
但请注意,Exists方法绝不是用来检查数据库连接,但不是检查数据库需要创建(内部使用,当你调用类似的方法EnsureCreated,Migrate等等).
| 归档时间: |
|
| 查看次数: |
3694 次 |
| 最近记录: |