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
Vous devez vous connecter pour publier un commentaire.
Vous avez plusieurs questions dans votre question, mais je vais commencer par le plus simple, à propos de l'attachement, si vous avez déjà la clé primaire. Si vous n'avez pas la clé primaire puis j'ai toujours fait une extraction puis une suppression, mais, chaque fois que je fais un fetch j'ai tendance à stocker la clé primaire pour les mises à jour et suppressions.
Il va supprimer de la clé primaire, mais si vous avez que juste l'attacher comme je le fais ci-dessous et appelez supprimer. Je ne passe pas autour de l'objet nécessaire par DLINQ que je veux être en mesure de le changer si je veux, donc je passe à un autre Utilisateur de l'objet et il suffit de tirer le PK de la classe affaires et le mettre dans la classe DAO.
c'est un moyen simple de supprimer la ligne de la table par requête linq.peut-être que ça aide .
référence : http://mvc4asp.blogspot.in/2013/09/how-to-delete-table-row-in-sql-database.html
où l'Élément est le nom de la Table, Linserted_LINQDataContext est votre Linq DB nom, id est le nom de la Colonne dans le tableau des éléments. Éléments est le nom de l'alias de l'Élément de tableau dans linq.