程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了DbSet 不包含 SaveChanges 的定义大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决DbSet 不包含 SaveChanges 的定义?

开发过程中遇到DbSet 不包含 SaveChanges 的定义的问题如何解决?下面主要结合日常开发的经验,给出你关于DbSet 不包含 SaveChanges 的定义的解决方法建议,希望对你解决DbSet 不包含 SaveChanges 的定义有所启发或帮助;

我正在尝试删除数据网格中的选定行以及数据库中的同一行。

尽管 dbset 不包含 SaveChanges 的定义,但我收到一个错误。

linq 和 EF 相对较新。有人知道这可能来自哪里吗?

private voID deletebutton_Click(object sender,RoutedEventArgs E)
{
        using (EFContext db = new EFContext())
        {
            int proID = (ProductDatagrID.SELEctedItem as Product).ProductID;
            Result result = (from r in db.products where r.ProductID == proID SELEct r).SingLeorDefault();
            db.Product.Remove(result);
            db.Product.SaveChanges();

            ProductDatagrID.Itemssource = db.Results.ToList();
        }
}

解决方法

您可以从 .ProductRemove() 方法中删除 SaveChanges()Result result 将由实体框架跟踪,因此它会知道从哪个表中删除您的 record,然后您可以调用 db.SaveChanges() 而不会出现任何错误,@R_197_10079@在 DbContext ({ {1}}):

EfContext

但是如果您想继续使用 using (EFContext db = new EFContext()) { int proId = (ProductDatagrid.SELEctedItem as Product).ProductID; Result result = (from r in db.products where r.ProductID == proId SELEct r).SingLeorDefault(); // .Product removed db.Remove(result); db.SaveChanges(); ProductDatagrid.Itemssource = db.Results.ToList(); } 的语法,那么您也可以将 db.Product 对象附加到 dbContext 而不需要像这样的查询:

Result

或者您可以将实体状态设置为已删除并通过这种方式将其删除

   using (EFContext db = new EFContext())
    {
        int proId = (ProductDatagrid.SELEctedItem as Product).ProductID;

        Result result = new Result { ProductId = proID};

        db.Product.Attach(result);
        db.Product.Remove(result);
        db.Product.SaveChanges();

        ProductDatagrid.Itemssource = db.Results.ToList();

    }

大佬总结

以上是大佬教程为你收集整理的DbSet 不包含 SaveChanges 的定义全部内容,希望文章能够帮你解决DbSet 不包含 SaveChanges 的定义所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。