0

私は EF4.0 を使用しており、データベースからレコードを削除しようとしていますが、私のコードは次の例外をスローし続けます:

タイプ 'System.Data.UpdateException' の初回例外が System.Data.Entity.dll で発生しました

これが私のコードです:

public bool ApproveUser(string username)  
{
    using (var context = new UserRegistrationEntities())
    {
        // The entry object gets populated correctly
        var entry = context.PendingApprovals
                .Where(e => e.Username.Equals(username))
                .FirstOrDefault();
        try
        {
            context.DeleteObject(entry);
            // Also tried context.PendingApprovals.DeleteObject(entry)
            context.SaveChanges();
            return true;
        }
        catch
        {
            return false;
        }
    }
}

コードをステップ実行しましたが、例外がスローされていますcontext.SaveChanges();

何か不足していますか?どんな助けでも大歓迎です!

前もって感謝します

4

2 に答える 2

0

最初に削除してみてください:

public bool ApproveUser(string username)  
{
    using (var context = new UserRegistrationEntities())
    {
        // The entry object gets populated correctly
        var entry = context.PendingApprovals
                .Where(e => e.Username.Equals(username))
                .FirstOrDefault();
        try
        {
            context.PendingApprovals.Remove(entry);
            context.DeleteObject(entry);
            // Also tried context.PendingApprovals.DeleteObject(entry)
            context.SaveChanges();
            return true;
        }
        catch
        {
            return false;
        }
    }
}
于 2013-10-01T23:10:06.223 に答える
0

ブレークポイントを設定して、エントリに値があるかどうかを確認しましたか? これを試して?

public bool ApproveUser(string username)  
{
    using (var context = new UserRegistrationEntities())
    {
        // The entry object gets populated correctly
        var entry = context.PendingApprovals
                .First(e => e.Username.Equals(username))
        if (entry != null) {
        try
        {
            context.PendingApprovals.DeleteObject(entry);
            context.SaveChanges();
            return true;
        }
        catch
        {
            return false;
        }
        }
    }
    return false;
}
于 2013-10-01T23:03:46.573 に答える