C# 使用EntityConnection、EntityCommand和EntityDataReader时发生EntitySqlException
在使用EntityConnection时,我遇到了一个我不知道如何解决的错误。当使用ObjectContext时,我可以设置属性C# 使用EntityConnection、EntityCommand和EntityDataReader时发生EntitySqlException,c#,entity-framework,C#,Entity Framework,在使用EntityConnection时,我遇到了一个我不知道如何解决的错误。当使用ObjectContext时,我可以设置属性DefaultContainerName,它可以工作,但现在我不知道是什么导致了问题以及如何解决问题。感谢您的帮助 完整错误如下所示-> EntityFramework.dll中发生“System.Data.Entity.Core.EntitySqlException”类型的异常,但未在用户代码中处理 其他信息:无法在当前范围或上下文中解析“动物”。确保所有引用的变量都
DefaultContainerName
,它可以工作,但现在我不知道是什么导致了问题以及如何解决问题。感谢您的帮助
完整错误如下所示->
EntityFramework.dll中发生“System.Data.Entity.Core.EntitySqlException”类型的异常,但未在用户代码中处理
其他信息:无法在当前范围或上下文中解析“动物”。确保所有引用的变量都在范围内,加载了所需的架构,并且正确引用了名称空间。靠近简单标识符,第1行,第21列
我的代码如下所示,在点击cmd.ExecuteReader()时引发异常->
示例取自此链接->
编辑。我使用版本6
public partial class dbEntities : DbContext
{
public dbEntities()
: base("name=dbEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Names> Names { get; set; }
public virtual DbSet<Animals> Animals { get; set; }
}
public分部类dbEntities:DbContext
{
公共实体()
:base(“name=dbEntities”)
{
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
抛出新代码FirstException();
}
公共虚拟数据库集名称{get;set;}
公共虚拟数据库集{get;set;}
}
DbContext
实体SQL查询中缺少名称。您必须使用dbEntities.animates
,而不仅仅是animates
。最后,您的命令文本应该如下所示:
从dbEntities中选择值a。动物作为
是否在模型上定义了动物实体集?Myabe您必须添加[YourContextentiesName]。动物
而不是jsut动物
您好,我首先使用模型,所以我不能真正改变模型集,但我会编辑它的外观。然后在实体SQL中使用dbEntities.animates
,而不是在FROM
子句之后使用animates
。lol它有效吗?如果是的话,我会加上它作为答案。帮助那些可能忘记在实体SQL字符串中包含上下文名称的人。
public partial class dbEntities : DbContext
{
public dbEntities()
: base("name=dbEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Names> Names { get; set; }
public virtual DbSet<Animals> Animals { get; set; }
}