Sql 实体框架6-保存更改

Sql 实体框架6-保存更改,sql,asp.net-mvc,entity-framework,entity-framework-6,Sql,Asp.net Mvc,Entity Framework,Entity Framework 6,我正在尝试使用EF 6执行插入 我已验证是否连接到数据库,因为我可以读取: List<Driver> drivers = DataContext.Drivers.ToList(); 除了没有插入任何内容之外,changetracker似乎显示它没有检测到任何更改。我还看到了使用.Attach的建议,但结果相同 我做错了什么有什么帮助吗 干杯 (MyEntities.Context.cs) 公共类SqlDataService:DataServiceBase { //我试图用上面

我正在尝试使用EF 6执行插入

我已验证是否连接到数据库,因为我可以读取:

List<Driver> drivers = DataContext.Drivers.ToList();
除了没有插入任何内容之外,changetracker似乎显示它没有检测到任何更改。我还看到了使用
.Attach
的建议,但结果相同

我做错了什么有什么帮助吗

干杯


(MyEntities.Context.cs)



公共类SqlDataService:DataServiceBase { //我试图用上面的代码进行插入
编辑:禁止先不使用代码(我不知道!)不确定上面的代码示例是否有用,但显示我如何设置我的类

似乎您已在代码中的某个位置关闭了自动跟踪更改。 尝试在添加之前添加此行:

var driver = new Driver();
driver.DriverName = "Blah";
//Turning Automatic changes tracking on:
DataContext.Configuration.AutoDetectChangesEnabled = true;
DataContext.Drivers.Add(driver);
DataContext.ChangeTracker.HasChanges(); //True
DataContext.SaveChanges();

注意:
自动检测更改启用
通常出于性能考虑关闭

您是否先使用代码?如果是,请提供您的上下文类您在
MyDataContext
中还做了什么?通常,向
DbSet
中添加项目会导致更改跟踪器中的更改。这与其他mo类似你确实阻止了这一切。
 public partial class MyEntities : DbContext
    {
        public MyEntities()
            : base("name=MyEntities")
        {
        }
public partial class MyDataContext : MyEntities
    {
public class SqlDataService : DataServiceBase<...Data.MyDataContext>
    {

//where I am trying to do the insert with the code above
var driver = new Driver();
driver.DriverName = "Blah";
//Turning Automatic changes tracking on:
DataContext.Configuration.AutoDetectChangesEnabled = true;
DataContext.Drivers.Add(driver);
DataContext.ChangeTracker.HasChanges(); //True
DataContext.SaveChanges();