2015-11-15 43 views
1

我得到這個錯誤,我不知道如何解決使用EntityConnection時。當使用ObjectContext時,我可以設置屬性DefaultContainerName,它可以工作,但現在我不知道是什麼導致了問題以及如何解決它。任何幫助表示讚賞。EntitySqlException當使用EntityConnection,EntityCommand和EntityDataReader

完整的錯誤看起來是這樣的 - >

型「System.Data.Entity.Core.EntitySqlException」發生在EntityFramework.dll的一個例外,但在用戶代碼

其他沒有處理信息:'動物'無法在當前範圍或上下文中解決。確保所有引用的變量都在作用域中,所需的模式被加載,並且名稱空間被正確引用。近簡單的標識符,行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

編輯。我使用版本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; } 
} 
+0

你有沒有在你的模型中定義的動物實體集? – CodeNotFound

+0

你必須添加'[YourContextEntitiesName] .Animals'而不是jsut'動物' – CodeNotFound

+0

嗨,我首先使用模型,所以我不能真正改變模型集,但我會編輯它看起來像。 – Andreas

回答

0

DbContext您的實體SQL查詢中缺少名稱。您必須使用dbEntities.Animals而不僅僅是Animals。最後命令文本應該是這樣的:

SELECT VALUE a FROM dbEntities.Animals AS a