Comment supprimer linq en sql?

Je suis très nouveau à linq to sql et je ne suis pas sûr de savoir comment supprimer un enregistrement.

J'ai donc été à la recherche dans ce tutoriel

http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

Donc pour la mise à Jour, ils ont

NorthwindDataContext db = new NorthwindDataContext();

Product product = db.Products.Single(p => p.ProductName == "Toy 1");

product.UnitPrice == 99;
product.UnitsInStock = 5;

db.SubmitChanges();

Pour supprimer ils ont

NorthwindDataContext db = new NorthwindDataContext();

var toyProducts = from p in db.Producsts
              where p.ProductName.Contains("Toy")
                  select p;

db.Products.RemoveAll(toyProducts);

db.SubmitChanges();

Donc j'requête à chaque fois, pour obtenir le dossier, afin de supprimer cet enregistrement? Comme je peux voir le faire avec la mise à jour, car vous avez besoin de lui donner un record à mettre à jour d'abord et ensuite faire les modifications, donc je comprends l'interrogation de la partie, mais pas avec les supprimer.

Comme tu ne peux pas envoyer ce que vous voulez supprimer, puis il va et le supprime? pourquoi, vous devez d'abord obtenir et puis dire qu'il soit supprimé?

N'est-ce pas 2 coups sur la base de données?

Aussi j'ai des relation de clé étrangère que je suis en train de me rendre au travail. J'ai donc ce

public ViewResult(string param1, string param2)
{
   Table A = new Table A
   A.Field1 = param1;
   A.Field2 = param2;

   Delete(A);
}

private void Delete(Table A)
{
   DbContext.A.DeleteAllOnsubmit(A.TableB);
   DbContext.A.DeleteAllOnSubmit(A.TableC);
   DbContext.A.DeleteOnSubmit(A);

}

Si cela échoue il s'agit avec ce message "Impossible de supprimer une entité qui n'a pas été fixée."

Donc, je peux voir pourquoi les 2 premières lignes manquerait à la suppression de la méthode, puisque j'ai fait un nouvel objet et de leur en est rien dans l'objet qui dispose de toutes les informations au sujet de la TableB et TableC.

Cependant je ne vois pas pourquoi la dernière ligne échoue encore, même si les 2 autres lignes où il n'y a pas.

Comme la façon dont j'ai pensé que cela fonctionnerait il prendrait ma Table Un objet de classe que j'ai passé à regarder et à travers la table pour que les informations contenues dans. Il ne semble pas être le cas.

Donc, dois-je d'abord de prendre les informations, puis de faire une requête pour l'obtenir et de le supprimer, comme dans l'exemple?

Aussi quelle est la différence entre removeAll() et dire DeleteAllOnSubmit().

Comme je l'ai dit je suis nouveau sur linq to sql et n'ont pas été en mesure de s'asseoir et de lire un livre sur elle en raison de contraintes de temps. Une fois que j'aurai plus de temps je vais lire un livre sans doute.

Grâce

source d'informationauteur chobo2