使用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; }
}
DbContext
名称。您必须使用dbEntities.Animals
而不是仅使用Animals
。最后,您的命令文本应该如下所示:
SELECT VALUE a FROM dbEntities.Animals AS a