Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将模型项目(EntityFramwork)添加到Asp.net Core 3项目_Asp.net_Entity Framework_Asp.net Core_Entity Framework Core_Blazor - Fatal编程技术网

将模型项目(EntityFramwork)添加到Asp.net Core 3项目

将模型项目(EntityFramwork)添加到Asp.net Core 3项目,asp.net,entity-framework,asp.net-core,entity-framework-core,blazor,Asp.net,Entity Framework,Asp.net Core,Entity Framework Core,Blazor,我的解决方案中有3个项目,如下所示: ModelProject(EntityFramework) ProjectA(ASP.NET MVC) ProjectB(带Blazor的ASP.NET CORE 3) 所以,在ModelProject中,我定义了我的表、关系、查询及其类,然后在ProjectA和ProjectB中添加了它们 在startup.cs by services中的ProjectB(.net core)上。AddDbContext尝试添加dbcontext(ModelProject

我的解决方案中有3个项目,如下所示:

  • ModelProject(EntityFramework)
  • ProjectA(ASP.NET MVC)
  • ProjectB(带Blazor的ASP.NET CORE 3)
  • 所以,在ModelProject中,我定义了我的表、关系、查询及其类,然后在ProjectA和ProjectB中添加了它们

    在startup.cs by services中的ProjectB(.net core)上。AddDbContext尝试添加dbcontext(ModelProject),但出现以下错误:

    无法将lambda表达式转换为类型“ServiceLifetime”,因为它不是委托类型

    在核心项目中使用EF是否存在此错误?我怎样才能解决它

    项目B(核心):

    services.AddEntityFrameworkSqlServer().AddDbContext(options=>{options.UseSqlServer(Configuration.GetConnectionString(“DataContext”);});
    
    和dbcontext(EntityFramework标准):

    命名空间模型项目
    {
    公共类DataContext:DbContext
    {
    公共DataContext():基(“DataContext”)
    {          
    SetInitializer(新的MigrateDatabaseToLatestVersion());
    (作为IObjectContextAdapter)ObjectContext.ContextOptions.UseCSharpNullComparisonBehavior=true;
    ((IObjectContextAdapter)this).ObjectContext.CommandTimeout=300;
    }
    }
    }
    
    它需要:

    .AddDbContext<Models.DataContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DataContext")));
    
    .AddDbContext(选项=>
    options.UseSqlServer(Configuration.GetConnectionString(“DataContext”));
    

    换句话说,没有花括号。您也可以只返回
    选项
    实例,但这只是不必要的代码膨胀。这是一个例外。由于lambda当前本质上是一个操作(无返回)而不是func,因此它与
    AddDbContext

    的正确参数不匹配。请添加dbcontext类代码请添加引发此异常的代码。在看不到您的代码的情况下,我们如何才能找到您的问题?问题中添加了代码。我有一个模型项目(EF),我想在解决方案中的所有其他项目上使用它。但不能在.net核心项目中使用它!我替换此代码,但不工作!
    namespace ModelProject
    {
        public class DataContext : DbContext
        {
            public DataContext() : base("DataContext")
            {          
                Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, Migrations.Configuration>());
                (this as IObjectContextAdapter).ObjectContext.ContextOptions.UseCSharpNullComparisonBehavior = true;
                ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 300;
             }
         }
    }
    
    .AddDbContext<Models.DataContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DataContext")));