C# 为什么LinqPad返回名称';型号名称';当前上下文中不存在错误?
我有一个Asp.net MVC-C 35;项目,想在项目中使用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
- DAL(包括
类)ApplicationDbContext
- 域类(模型)
- 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)测试了它。结果没有改变。对不起,不知道这种行为