我正在尝试使用EF从我的表中删除记录,但没有任何事情发生。代码执行时没有错误,但记录只是在数据库中。我在其他地方的代码几乎相同。
using (var DB = new PTNWebConfigurationModel.PTNWebConfigurationEntities())
{
var account = DB.Accounts.Where(a => a.LoginID == loginID).FirstOrDefault();
//Load existing session for the Account, otherwise create a new one.
if (!LoadExistingSession(ip, DB, account))
{
CreateNewSession(ip, DB, account);
}
AccountsSession sessionsToDelete = DB.AccountsSessions.Where(a => a.RemoteIP == ip && a.AccountID == 1).FirstOrDefault();
if (sessionsToDelete != null)
{
DB.DeleteObject(sessionsToDelete);
DB.SaveChanges();
}
}
我也尝试过这些选项:
DB.DeleteObject(sessionsToDelete);
DB.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave);
DB.AcceptAllChanges();
我也开始没有使用块和刚刚实例化的实体对象,但这也不起作用。
答案 0 :(得分:1)
我喜欢这样的问题。
我看到ORM没有执行命令(并且没有错误)的大多数时候是由于对该表的生成类中未表示的基础数据表的更改。
您可以刷新架构/类模型,然后重试。
答案 1 :(得分:0)
从Chris' answer继续我过去发现的另一件事是,如果您正在进行EF数据库优先建模,那么您可能已经创建了连接两个关联表的外键但是该键尚未设置在关系中删除级联。这可能会导致EF有点困难。因此,检查数据库中的任何FK。希望有所帮助。