猿问

实体框架,添加后无法删除记录

我正在制作一个简单的 WPF 应用程序,它在数据库中使用一个表。我正在使用实体框架。这是我添加新记录的方法:


public static bool CreateNew(CustomerModel newCustomer) 

{

    var addCustomer = new Customer 

    {

        ID = newCustomer.ID,

        Name = newCustomer.Name,

        Address = newCustomer.Address,

        City = newCustomer.City,

        Country = newCustomer.Country

    };

    try 

    {

        //_context.Customers.Add(addCustomer);

        _context.Entry(addCustomer).State = EntityState.Added;

        _context.SaveChanges();

        return true;

    } 

    catch 

    { 

        return false; 

    }

}

工作正常:记录出现在数据库中。


现在我尝试删除刚刚添加的基于其的记录ID:


public static bool Delete(long id) 

{

    var cust = new Customer() { ID = id };

    try 

    {

        _context.Entry(cust).State = EntityState.Deleted;

        /*_context.Customers.Attach(cust); 

        _context.Customers.Remove(cust);*/

        _context.SaveChanges();

        return true;

    } 

    catch 

    { 

        return false;

    }

}

不起作用。


应用程序中的 DbSet 似乎没有添加到数据库中的条目。我该如何解决?


附注。客户类是我的POCO实体,CustomerModel也是我用于应用程序的类。_context引用DbContext实体框架使用


德玛西亚99
浏览 160回答 1
1回答

慕斯709654

试试这个。使用Find方法如下:var cust = _context.Customers.Find(id); _context.Customers.Remove(cust);_context.SaveChanges();
随时随地看视频慕课网APP
我要回答