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