2017-07-29 68 views
-2

你好,我有一個問題。我不能從我的簡單控制檯應用程序與實體框架中獲取任何數據。在localdb和table上的數據庫被填充。所有名字都是正確的。如果我改變模型類我得到錯誤,所以它意味着我的實體框架連接這個數據庫。你能解釋我爲什麼不能得到任何數據嗎?當應該有3行時, Console.WriteLine(baseD.ConsoleEntities.Count());返回0。C#實體框架控制檯。爲什麼我的返回數據是0

class Program 
{ 
    static void Main(string[] args) 
    { 
     var baseD = new ConsoleDbContext(); 
     Console.WriteLine(baseD.ConsoleEntities.Count()); 
     Console.WriteLine("Done"); 
     Console.ReadKey(); 
    } 
} 



public class ConsoleDbContext : DbContext 
{ 
    public DbSet<Entity> ConsoleEntities { get; set; } 
} 
public class Entity 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
} 
+0

https://stackoverflow.com/questions/21258462/entity-framework-dbset-contains-0-records有幫助嗎? – mjwills

+0

您需要提供更多信息或有意義的答案。你使用的是什麼版本的實體框架? –

+0

最新的實體框架,沒有幫助。 –

回答

1

你需要指定CONNSTRING到的DbContext,試試這個:

public class ConsoleDbContext : DbContext 
{ 
    public ConsoleDbContext() 
    : base("name=ConsoleDbContext") 
    { } 

    public DbSet<Entity> ConsoleEntities { get; set; } 
} 
+1

對不起,沒有工作。 –

0

我明白了! 所以..我的模型類名爲「實體」更改爲「實體」和ENTITIES是表的名稱。爲什麼?因爲實體框架將「s'或'es'添加到」PluralizingTableNameConvention「的名稱尾部。更改修復該測試學習項目的內容是將表的名稱更改爲實體的實體或在實體框架中禁用PluralizingTableNameConvention。感謝所有答案!

相關問題