Fazer delete com join no linq

.NET

28/09/2014

Esse é meu delete:

delete from dbo.Ruptura
       from dbo.Ruptura A
            INNER JOIN dbo.Apresentacao  B ON A.Codigo_Apresentacao  = B.Codigo_Apresentacao
            INNER JOIN dbo.PDV           C ON A.CodigoPDV            = C.CodigoPDV
            INNER JOIN dbo.Motivo        D ON A.IDMotivo             = D.IDMotivo

       where a.IDMotivo = 1

'''''''
Sendo que IDMotivo vem por parâmetros, mas isso eu sei fazer. Só não o delete. Coloquei no LINQPad, mas não consegui converter, não tinha essa opçaõ, pelo menos não consegui.
Pjava

Pjava

Curtidas 0

Respostas

Pjava

Pjava

28/09/2014

Está me dando esse erro e eu já adicionei o System.Data.Linq e mesmo assim nada:

'System.Data.Entity.DbSet<Ruptura.Models.Ruptura>' does not contain a definition for 'DeleteAllOnSubmit' and no extension method 'DeleteAllOnSubmit' accepting a first argument of type 'System.Data.Entity.DbSet<Ruptura.Models.Ruptura>' could be found (are you missing a using directive or an assembly reference?)
GOSTEI 0
Pjava

Pjava

28/09/2014

Tentei desse jeito e continua o erro. É
var monta_arvore = (from rup in db.Ruptura
                                    join ap in db.Apresentacao on rup.Codigo_Apresentacao equals (ap.Codigo_Apresentacao)
                                    join mo in db.Motivo on rup.IDMotivo equals (mo.IDMotivo)
                                    join pdv in db.PDV on rup.CodigoPDV equals (pdv.CodigoPDV)

                                    where rup.IDMotivo != _idmotivo

                                    //group rup by new { rup.IDRuptura} into gr

                                    select new
                                    {
                                        rup.IDRuptura,
                                        rup.DataRuptura,
                                        rup.IDMotivo,
                                        rup.Motivo.Motivo1,
                                        rup.IDOrigem,
                                        rup.CodigoPDV,
                                        rup.PDV.UF,
                                        pdv.Cidade,
                                        CnpjDescricao = pdv.Cnpj + " - " + pdv.Descricao,
                                        rup.Codigo_Apresentacao,
                                        ap.Unidade_Negocio,
                                        ap.Codigo_Unidade_Negocio,
                                        ap.Franquia,
                                        ap.Familia,
                                        ap.Descricao
                                    }).ToList().OrderBy(r => r.IDMotivo);

                foreach (var item in monta_arvore)
                {
                    db.DeleteAllOnSubmit(item); ==> Aqui dá o erro
                }


Esse é o erro que dá no DeleteAllOnSubmit. Também tentei DeleteOnSubmit e dá o mesmo erro.

'System.Data.Entity.DbSet<Ruptura.Models.Ruptura>' does not contain a definition for 'DeleteAllOnSubmit' and no extension method 'DeleteAllOnSubmit' accepting a first argument of type 'System.Data.Entity.DbSet<Ruptura.Models.Ruptura>' could be found (are you missing a using directive or an assembly reference?)
GOSTEI 0
POSTAR