c# - 无法将 lambda 表达式转换为类型 'ServiceLifetime',因为它不是 Asp.net core 2.2 上的委托(delegate)类型

标签 c# entity-framework

为什么会出现这个错误:

Cannot convert lambda expression to type 'ServiceLifetime' because it is not a delegate type [TokenAuthWebApiCore.Server]

在这行代码中:

public virtual void SetUpDataBase(IServiceCollection services)
{
    // Add framework services.
        services.AddDbContext<SecurityContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("SecurityConnection"), sqlOptions => sqlOptions.MigrationsAssembly("TokenAuthWebApiCore.Server")));
}

我是这样用的:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton(Configuration);

    services.AddMvc();

    SetUpDataBase(services);

    // services.AddDbContext<SecurityContext>(options =>
    //      options.UseSqlServer(Configuration.GetConnectionString("SecurityConnection"), sqlOptions => sqlOptions.MigrationsAssembly("TokenAuthWebApiCore.Server")));

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

public virtual void SetUpDataBase(IServiceCollection services)
{
    // Add framework services.
        services.AddDbContext<SecurityContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("SecurityConnection"), sqlOptions => sqlOptions.MigrationsAssembly("TokenAuthWebApiCore.Server")));
}

这是我所有的using语句

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.IdentityModel.Tokens;
using System.Text;

我在想这可能是因为教程我正在学习不同版本的 .net core 的教程并且我使用的是 .net core 2.2 版。你能告诉我如何解决这个问题吗?谢谢。

最佳答案

我在我的项目中遇到了同样的错误。问题是我的上下文类不是从 DbContext 派生的。

public class SecurityContext : DbContext
{
}

关于c# - 无法将 lambda 表达式转换为类型 'ServiceLifetime',因为它不是 Asp.net core 2.2 上的委托(delegate)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55684726/

相关文章:

c# - 如何使用空格执行 linq 搜索

entity-framework - EF Core Include 方法不起作用

c# - 如何将完整的 Sqlite 连接字符串传递给 DbContext

c# - 包含集合的自定义配置部分

c# - C++ DLL 的函数不会在 WPF 中输出文本

c# - FluentValidation:如何将 bool 设为必填字段, 'false' 作为有效输入?

c# - C# .NET 中的 UTF-16 安全子字符串

c# - 使用 C# 在 Silverlight 中向网格添加形状

c# - 导航属性丢失?

c# - Entity Framework 6 - 仅将一个语句映射到存储过程