Usuário com melhor resposta
usar linq para excluir

Pergunta
-
Respostas
-
qdo vc tras singleordefault vc tras o primeiro registro, vc não esta trazendo todos vc tem que colocar tolist e fazer um for para ele ir deletando todos, faz como te passei o ultimo, esta ai abaixo.
using (var entities = new Entity()) { foreach (Item item in entities.Items.Where(x => x.id == id)) entities.DeleteObject(item); entities.SaveChanges(); }
Junior
- Marcado como Resposta rafa-martin sexta-feira, 22 de março de 2013 19:21
Todas as Respostas
-
se vc quer excluir um registro com linq vc faz a consulta do registro e então deleta
faz assim
var deleteOrderDetails = from details in db.OrderDetails where details.OrderID == 11000 select details; foreach (var detail in deleteOrderDetails) { db.OrderDetails.DeleteOnSubmit(detail); } try { db.SubmitChanges(); } catch (Exception e) { Console.WriteLine(e); // Provide for exceptions. }
Junior
-
então mais quando quando eu faço db.noma da minha tabela não aparece a opção DeleteOnSubmit. pq?
basedados db =
new basedados();
//var toyProducts = from p in db.tabela
// select p;
var deleteOrderDetails =
from details in db.tabela
select details;
foreach (var detail in deleteOrderDetails)
{
db.tabela.DeleteOnSubmit(detail);
}
try
{
db.SubmitChanges();
}
catch (Exception e)
{
Console.WriteLine(e);
// Provide for exceptions.
} -
-
-
-
-
-
-
-
-
-
olha aqui outro exemplo
public static void DeleteCustomer(string customerID) { NorthWindDataClassesDataContext dc = new NorthWindDataClassesDataContext(); var matchedCustomer = (from c in dc.GetTable<Customer>() where c.CustomerID == customerID select c).SingleOrDefault(); try { dc.Customers.DeleteOnSubmit(matchedCustomer); dc.SubmitChanges(); } catch (Exception ex) { throw ex; } }
Junior
-
-
cara o
DeleteOnSubmit
não aparece na lista de opções. está me dizendo que não estou usando referencia. mais está definido a referencia o do linq
está me dando esse erro:
'System.Data.Objects.ObjectQuery<WebForms.Admins>' does not contain a definition for 'DeleteOnSubmit' and no extension method 'DeleteOnSubmit' accepting a first argument of type 'System.Data.Objects.ObjectQuery<WebForms.Admins>' could be found (are you missing a using directive or an assembly reference?)
e preciso usar linq to sql- Editado rafa-martin sexta-feira, 22 de março de 2013 18:08 r
-
-
-
dá uma olhada nisso para linq to sql
http://www.macoratti.net/10/05/c_ulinq.htm
entity framework
Junior
-
-
-
seguinte eu vi que tinha q criar um dbml. então criei um e aí as opções de deleteonsubmit e submitchanges apareceram.
aí fiz isso
if (!IsPostBack)
{
DLChoqueDataContext db = new DLChoqueDataContext();
var choque = (from p in db.GetTable<tabela>()
where 1 == 1
select p).SingleOrDefault();
db.tabelas.DeleteOnSubmit(choque);
db.SubmitChanges();
}só que está dizendo q minha sequencia tem mais de um elemento. esse é o erro:
Sequence contains more than one element
eu preciso deletar todos os registros da tabela.
pq o erro?
-
qdo vc tras singleordefault vc tras o primeiro registro, vc não esta trazendo todos vc tem que colocar tolist e fazer um for para ele ir deletando todos, faz como te passei o ultimo, esta ai abaixo.
using (var entities = new Entity()) { foreach (Item item in entities.Items.Where(x => x.id == id)) entities.DeleteObject(item); entities.SaveChanges(); }
Junior
- Marcado como Resposta rafa-martin sexta-feira, 22 de março de 2013 19:21
-
consegui fazer.
DLChoqueDataContext db = new DLChoqueDataContext();
var consulta = (from p in db.tabelas select p).ToList();
foreach (var detail in consulta)
{
db.tabelas.DeleteOnSubmit(detail);
}
db.SubmitChanges();
só que aí eu coloquei db.tabela.DeleteAllOnSubmit(consulta); porque é mais rápida a exclusão.
agora só uma dúvida, tem como fazer um truncate em vez de delete?
-
-
-
agora uma outra duvida.
tem q criar uma classe dbml. só que estou apontando para minha máquina. quando publicar a aplicação em um server... tenho que configurar os dados do servidor antes de publicar a aplicação?
não tem como eu deixar isso automático? por exemplo, quando eu publicar no server, já reconhecer os dados do sql q estão instalados nele.
é possível?