如何使用EF删除实例?

时间:2013-02-14 11:20:40

标签: c# entity-framework

我创建了一个简单的Windows控制台应用程序来使用VS2012和.NET 4.5测试实体框架。

我添加了一个ADO.NET实体数据模型来从我的数据库创建模型。我用这个语法使用它,但我怎么能删除一些东西?

static void Main(string[] args)
    {
        using (var ctx = new HKDBEntities())
        {
           int wordId=2;
          var selectedWords = (from o in context.Addresses 
                                where o.word== wordId
                                select o).FirstOrDefault(); 

           //these syntaxt is unavailable why????
           ctx.Words.Delete(word);
           ctx.DeleteObject(word);

          // i test remove method but works not gave me some error
             context.Words.Remove(selectedWords);
        }
    }

如何使用删除语法?

2 个答案:

答案 0 :(得分:1)

使用这个:ctx.Words.Remove(word)。并且不要忘记SaveChanges();在处理上下文之前。 !!!!!!!我已经更新了答案!!!!!! 关于这一点的新想法是:

static void Main(string[] args)
    {
        using (var ctx = new HKDBEntities())
        {
           int wordId=2;
          // This will get the first Addresses which have a `Words` with `WordId`==2
          var selectedWords = ctx.Addresses.First(e=>e.Words.WordId==wordId); 
          //If you want to get to selectedWords the `Words` entity and delete it you should use:
          selectedWords = cts.Words.First(e=>e.WordId == wordId);

          ctx.Words.Remove(selectedWords);
          ctx.SaveChanges();
        }
    }

您尝试从上下文获取数据时从ctx中删除数据

答案 1 :(得分:0)

您必须使用ctx.Words.Remove(word);