DeleteOnSubmit没有出现在LinqToSql上

时间:2016-02-25 14:44:48

标签: c# entity-framework linq-to-sql

我已经阅读了我能找到的与此主题相关的所有帖子并应用了他们的解决方案,但仍然没有将DeleteOnSubmit()方法显示为选项。 DeleteObject()也没有。 使用EF 6.1.3,NET 4.5和VS 2013.我还添加了对System.Data.Link的引用。以下是代码的一部分,为简洁起见进行了简化:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Linq;

   public void DeleteRow(int rowId)
    {
              using (AppDataDbContext db = new AppDataDbContext())
                {

                    db.Reservations.?????



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

    public class AppDataDbContext: DbContext
    {
               public AppDataDbContext()
            : base("name=DefaultConnection")
        {
        }

        public DbSet<Reservation> Reservations { get; set; }
    }
enter code here


public class Reservation
{
    [Key()]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int IdNo { get; set; }
    public int ClientAcctNo { get; set; }
    public string Description { get; set; }
    public DateTime DueDate { get; set; }
    public string Status { get; set; }
}

2 个答案:

答案 0 :(得分:1)

你确定LogEvents是'Table'吗? DeleteOnSubmit只能从'Table'调用。

答案 1 :(得分:1)

您正在使用Linq to Entity Framework而不是Linq to SQL,所以您可以使用Remove()方法来实现相同的目标。

db.Reservations.Remove(your entity)
db.SaveChanges();

在调用SaveChanges之前不会删除实体,因此您可以在循环或RemoveRange中调用Remove。