使用EntityConnection,EntityCommand和EntityDataReader时的EntitySqlException

时间:2015-11-15 13:26:54

标签: c# entity-framework

我收到此错误,我不知道在使用EntityConnection时如何解决。当使用ObjectContext时,我可以设置属性DefaultContainerName并且它可以工作,但现在我不知道是什么导致了问题以及如何解决它。任何帮助表示赞赏。

完整错误如下所示 - >

  

EntityFramework.dll中出现'System.Data.Entity.Core.EntitySqlException'类型的异常,但未在用户代码中处理

     

其他信息:无法在当前范围或上下文中解析“动物”。确保所有引用的变量都在范围内,加载了所需的模式,并正确引用了名称空间。近简单标识符,第1行,第21列。

我的代码看起来像这样,当命中cmd.ExecuteReader() - >

时抛出异常
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

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

1 个答案:

答案 0 :(得分:0)

您的Entity SQL查询中缺少

DbContext名称。您必须使用dbEntities.Animals而不是Animals。最后,您的命令文本应如下所示:

SELECT VALUE a FROM dbEntities.Animals AS a

相关问题