C# 使用EntityConnection、EntityCommand和EntityDataReader时发生EntitySqlException

C# 使用EntityConnection、EntityCommand和EntityDataReader时发生EntitySqlException,c#,entity-framework,C#,Entity Framework,在使用EntityConnection时,我遇到了一个我不知道如何解决的错误。当使用ObjectContext时,我可以设置属性DefaultContainerName,它可以工作,但现在我不知道是什么导致了问题以及如何解决问题。感谢您的帮助 完整错误如下所示-> EntityFramework.dll中发生“System.Data.Entity.Core.EntitySqlException”类型的异常,但未在用户代码中处理 其他信息:无法在当前范围或上下文中解析“动物”。确保所有引用的变量都

在使用EntityConnection时,我遇到了一个我不知道如何解决的错误。当使用ObjectContext时,我可以设置属性
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; }
}