Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.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
C# 为什么LinqPad返回名称';型号名称';当前上下文中不存在错误?_C#_Asp.net Mvc_Entity Framework_Linqpad - Fatal编程技术网

C# 为什么LinqPad返回名称';型号名称';当前上下文中不存在错误?

C# 为什么LinqPad返回名称';型号名称';当前上下文中不存在错误?,c#,asp.net-mvc,entity-framework,linqpad,C#,Asp.net Mvc,Entity Framework,Linqpad,我有一个Asp.net MVC-C 35;项目,想在项目中使用LINQPad之前测试它的一些实体框架语句 该项目具有不同的类库,例如 DAL(包括ApplicationDbContext类) 域类(模型) A)我在LINQPad中的DAL中添加了一个EF连接,它成功地在窗口中加载了左树中的所有实体。[见下图] B)我还将LINQPad查询中的一些必需引用添加到以下DLL中: DAL动态链接库 域类dll Microsoft.AspNet.Identity.Core.dll EntityF

我有一个Asp.net MVC-C 35;项目,想在项目中使用LINQPad之前测试它的一些实体框架语句

该项目具有不同的类库,例如

  • DAL(包括
    ApplicationDbContext
    类)
  • 域类(模型)
A)我在LINQPad中的DAL中添加了一个EF连接,它成功地在窗口中加载了左树中的所有实体。[见下图]

B)我还将LINQPad查询中的一些必需引用添加到以下DLL中:

  • DAL动态链接库
  • 域类dll
  • Microsoft.AspNet.Identity.Core.dll
  • EntityFramework.dll

但是» 当我右键单击左树中的一个实体并选择每个选项时,会显示以下错误:

名称“[概念模型名称]”在当前上下文中不存在

为什么? 如何解决此问题?


编辑1:

ApplicationDbContext
类的
OnModelCreating
方法中,我调用以下方法将实体动态添加到
DbContext

    public void LoadEntities(Assembly asm, DbModelBuilder modelBuilder, string nameSpace)
    {
        var entityTypes = asm.GetTypes()
            .Where(type => type.BaseType != null &&
                           type.Namespace == nameSpace &&
                           type.BaseType == null)
            .ToList();

        var entityMethod = typeof(DbModelBuilder).GetMethod("Entity");
        entityTypes.ForEach(type => entityMethod.MakeGenericMethod(type).Invoke(modelBuilder, new object[] { }));
    }
我用这行代码来称呼它:

LoadEntities(typeof(AppUser).GetTypeInfo().Assembly, modelBuilder, "DomainClasses.Entities");
原因可能与模型的动态加载有关吗?

我自己解决了

我在问题中提到的怀疑是正确的。正如我在问题中所写,我将实体动态添加到
DbContext
中,但现在我将其更改为静态方式,如下所示:

// Add this property to the ApplicationDbContext class

public virtual DbSet<Consumption> Consumptions { get; set; }
//将此属性添加到ApplicationDbContext类
公共虚拟数据库集消耗{get;set;}

现在,当我在
LINQPad
中使用
consumpions
属性时,它可以工作…

开始,您可以切换到的最新版本(5)LinqPad@Steve,好的,我也尝试了v5,但我在问题中添加了一些新信息(关于动态加载DBContext类中的实体)。“你知道吗?”史蒂夫,我用上一个版本(5)测试了它。结果没有改变。对不起,不知道这种行为