您好我有一个问题。我无法从带有Entity Framework的简单控制台应用程序中获取任何数据。填充localdb和table上的数据库。所有名字都是正确的。如果我改变模型类我得到错误,这意味着我的实体框架连接这个数据库。你可以解释一下为什么我不能获得任何数据吗?
当应该有3行时,Console.WriteLine(baseD.ConsoleEntities.Count());
返回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 :(得分:1)
你需要为DbContext指定ConnString,试试这个:
public class ConsoleDbContext : DbContext
{
public ConsoleDbContext ()
: base("name=ConsoleDbContext")
{ }
public DbSet<Entity> ConsoleEntities { get; set; }
}
答案 1 :(得分:0)
我知道了! 所以..我的名为“Entity”的模型类更改为“Entities”,ENTITIES是表的名称。为什么?因为实体框架将“s”或“es”添加到“PluralizingTableNameConvention”的名称末尾。修改修复该测试学习项目的内容是将表的名称从实体更改为实体或在实体框架中禁用PluralizingTableNameConvention。谢谢你的所有答案!