使用EntityConnection、EntityCommand和EntityDataReader时出现EntitySq

本文关键字:EntitySq EntityDataReader EntityConnection EntityCommand 使用 | 更新日期: 2023-09-27 18:22:08

我在使用EntityConnection时遇到了一个不知道如何解决的错误。当使用ObjectContext时,我可以设置属性DefaultContainerName,它可以工作,但现在我不知道是什么导致了问题以及如何解决问题。如果有任何帮助,我将不胜感激。

完整错误如下所示->

EntityFramework.dll中发生类型为"System.Data.Entity.Core.EntitySqlException"的异常,但未在用户代码中处理

附加信息:无法在当前范围或上下文中解析"Animals"。确保所有引用的变量都在作用域中,加载了所需的架构,并且正确引用了命名空间。接近简单标识符,第1行,第21列。

我的代码看起来是这样的,并且在点击cmd时抛出异常。ExecuteRead()->

using (EntityConnection conn = new EntityConnection("name=dbEntities"))
        {
            using (EntityCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "SELECT VALUE a FROM Animals AS a";
                conn.Open();
                using (EntityDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.CloseConnection))
                {
                    while (reader.Read())
                    {
                        // code
                    }
                }
            }
        }

示例取自此链接->http://www.entityframeworktutorial.net/Querying-with-EDM.aspx

编辑。我使用版本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; }
}

使用EntityConnection、EntityCommand和EntityDataReader时出现EntitySq

实体SQL查询中缺少DbContext名称。您必须使用dbEntities.Animals而不是仅使用Animals。最后,您的命令文本应该如下所示:

SELECT VALUE a FROM dbEntities.Animals AS a