我制作了一个简单的数据库,其中包含 2 个表和几列。在我安装实体框架 4.1+ 时阅读的一些教程中,我可以生成“DbContext 代码”,然后我可以使用本地上下文来获取比 DbSet 更好的 ObservableCollection,因为它会自动更新 UI。所以我安装了实体框架 4.1,选择了我的数据库模型并选择了“ADO.NET DbContext Generator”。所以我得到了这个:
namespace BazaStudentow
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class DatabaseEntities : DbContext
{
public DatabaseEntities()
: base("name=DatabaseEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<Notes> Notes { get; set; }
public DbSet<Students> Students { get; set; }
}
}
加上带有简单表模型的 StudModel.tt 文件。
所以在主课中我添加了这个:
DatabaseEntities db = new DatabaseEntities();
但后来我意识到 db.Students.Local 是空的(我之前在编辑器中手动添加了 2 条记录),虽然 db.Students 有 2 条记录。所以我发现了这个:ObservableCollection 比 ObjectSet 更好(第二个答案),但是没有“Load”这样的方法。我错过了什么?我应该添加一些特殊代码来让这个“加载”工作吗?
我只是简单地想: 1。创建新项目并添加简单的数据库。2.使用Entity Framework自动生成一些代码,这样我就可以将表绑定到DataGrid或其他东西,当数据更改时会自动更新(所以我需要ObservableCollection)。3. 当我有这个添加一些功能到插入/更新/删除数据(使用自动更新 ofc)。
请帮忙,干杯;)