Bonne façon de supprimer l'enregistrement dans LINQ to entities

J'ai juste une situation très simple où tous j'ai besoin est de supprimer l'enregistrement à l'aide de Linq2Entities. J'ai essayé de faire quelques recherches et ne peut toujours pas trouver la bonne façon de le faire.

Voici mon code simple:

[DataObjectMethod(DataObjectMethodType.Delete)]
public void DeleteEmployee(Employee z)
{
    using (var ctx = new MyEntity())
    {
        var x = (from y in ctx.Employees
                 where  y.EmployeeId == z.EmployeeId
                 select y).FirstOrDefault();
         ctx.DeleteObject(x);
         ctx.SaveChanges();
    }
 }

[DataObjectMethod(DataObjectMethodType.Select)]
public List<Employee> GetAllEmployee()
{
    using (var ctx = new MyEntity())
    {
        var x = from y in ctx.Employees
                select y;
        return x.ToList();
    }
}

Je peux supprimer un dossier en particulier, si par exemple je attribuer y.EmployeeName == "Harold Javier" à la Suppression de la méthode ci-dessus, mais quand j'assigne y.EmployeeId == z.EmployeeId pour le code ci-dessus, le supprimer ne fonctionne pas. (Note: Employé est la clé primaire de la table Employee)

Quel est le problème avec votre code? Toutes les erreurs? poste si.
Nous pouvons compiler le code et il semble bon. Mais quand on l'utilise avec l'ObjectDataSource (ASP.NET WebForm), le bouton Supprimer ne fonctionne pas.
Essayez ctx.Employees.DeleteOnSubmit(x) au lieu de ctx.DeleteObject(x)
Le code est ok. Est-il une exception? Qu'advient-il si vous passez dans le débogueur?
L'utilisation du débogueur, veuillez vérifier si le z objet est correctement créé, et si son EmployeeId existe réellement dans votre base de données.

OriginalL'auteur Harold Javier | 2013-03-18