Sha*_*awn 1 c# asp.net-web-api asp.net-core-mvc asp.net-core
我在https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-vsc上尝试dotnet核心教程
TodoContext.cs
using Microsoft.EntityFrameworkCore;
namespace TodoApi.Models
{
public class TodoContext : DbContext
{
public TodoContext(DbContextOptions<TodoContext> options)
: base(options)
{
}
public DbSet<TodoItem> TodoItems { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs
using ...
using TodoApi.Models;
using Microsoft.EntityFrameworkCore;
namespace TodoApi
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<TodoContext>(opt => opt.UseInMemoryDatabase());
services.AddMvc();
services.AddScoped<ITodoRepository, TodoRepository>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc();
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以我得到了这个"没有重载方法,用于UseInMemoryDatabase()接受0参数"我用google搜索UseInMemoryDatabase()方法签名但找不到任何.
我应该为UseInMemoryDatabase()提供什么参数?
更新:
一旦我将Microsoft.EntityFrameworkCore.InMemory从2.0.0-preview1-final降级到1.1.1并且运行dotnet restore错误消失了.
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0-preview1-final"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="1.1.1"/>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
我怀疑错误是由于Microsoft.EntityFrameworkCore.InMemory没有"2.0.0-preview1-final"?如果这是真的那么错误不是因为参数的数量,而是因为没有安装InMemory db,因此在项目的任何地方都没有定义UseInMemoryDatabase().
您需要提供数据库名称.
services.AddDbContext<ApiContext>(options => options.UseInMemoryDatabase("RazorPagesApp"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2499 次 |
| 最近记录: |