我正在尝试将Entity Framework Core 1.1添加到我的项目中,并使用连接String从Azure数据库中获取数据。我尝试在他们说的https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/上阅读更改,我应该在我的Startup.cs文件中执行此操作以连接到数据库:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseSqlServer(
"connection string",
options => options.EnableRetryOnFailure());
}
但它只是给了我一个错误:
无法找到类型或名称空间“DbContextOptionsBuilder”...
和
'Startup.OnConfiguring(DbContextOptionsBuilder):没有合适的方法 发现要覆盖。
我可以使用Microsoft.EntityFrameworkCore; 添加,这会使DbContextOptionsBuilder的错误消失,但 .UseSqlServer 会出错:
'DbContextOptionsBuilder'不包含。的定义 'UseSqlServer',没有扩展方法...
如何解决此问题,以便我可以连接到Azure上的Db并获取数据?
提前致谢!
答案 0 :(得分:1)
您所指的博客文章可能有点令人困惑。他们在谈论你的 DbContext 或的OnConfiguring方法。您的示例是混合两个世界(您希望DbContext OnConfiguring方法位于Startup中)。
首先添加包 Microsoft.EntityFrameworkCore.SqlServer 。
假设你想使用Startup.cs,它将如下所示:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<YourDbContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
});
}
您可以在appsettings.json中定义连接字符串:
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=.;Database=<your db>;User Id=;Password="
}
}