在 Visual Studio 19 中使用 Entity Framework 未将数据添加到 LocalDB

Data not getting added to LocalDB using Entity Framework in Visual Studio 19

我是 C# 和 VS 的新手,正在学习 Pluralsight C# Generics 课程。 我在 VS 的 SQL Server Object Explorer 中创建并连接了 LocalDB 实例,并使用 Entity Framework 处理数据。没有错误,但数据没有进入数据库。 (实际上我的项目目录中没有创建数据库文件)。当我打印 employeeRepo.FindAll().Count()

的结果时没有输出

相关代码为:

public class EmployeeDb : DbContext
{
    public DbSet<Employee> Employees { get; set; }
}

public class SqlRepository<T> : IRepository<T> where T: class
{
    DbContext _ctx;
    DbSet<T> _set;
    public SqlRepository(DbContext ctx)
    {
         _ctx = ctx;
         _set = _ctx.Set<T>();
    }
    public void Add(T newEntity)
    {
         _set.Add(newEntity);
    }

    public int Commit()
    {
        return _ctx.SaveChanges();
    }

    public IQueryable<T> FindAll()
    {
        return _set;
    }
}

主要功能及其他功能:

static void Main(string[] args)
{
    Database.SetInitializer(new DropCreateDatabaseAlways<EmployeeDb>());

    using (IRepository<Employee> employeeRepo = new SqlRepository<Employee>(new EmployeeDb()))
    {
                
        AddEmployees(employeeRepo);
        CountEmployees(employeeRepo);
    }
}

private static void CountEmployees(IRepository<Employee> employeeRepo)
{
   Console.WriteLine(employeeRepo.FindAll().Count());
}

   private static void AddEmployees(IRepository<Employee> employeeRepo)
{
   employeeRepo.Add(new Employee { Name = "AA" });
   employeeRepo.Add(new Employee { Name = "BB" });
   employeeRepo.Commit();
}

Count() 存在于 System.Linq 命名空间中。控制台上的预期输出为 2。 非常感谢任何 help/guidance。谢谢!

原来我的项目没有连接到 SQL 服务器和创建任何数据库 table。我的错,但现在学会了如何正确地做到这一点。

对于那些刚开始使用 SQL 服务器和 Entity Framework 的人来说很棒的视频 https://www.youtube.com/watch?v=defBg85T8AU

https://www.youtube.com/watch?v=ZX7_12fwQLU&list=RDCMUCWv7vMbMWH4-V0ZXdmDpPBA&start_radio=1&rv=ZX7_12fwQLU

此外,在我的 VS 19 .NET 桌面开发中,App.config 文件不会自动创建。没问题,只需从添加新项目创建它。 (不确定所有需要添加的内容,但目前只有 connectionString 项目有效。)