2016-08-09 2 views
-3

J'essaie de mettre à jour plusieurs lignes en utilisant linq. Ma structure de table est comme ci-dessous.linq requête pour mettre à jour plusieurs lignes

id uploadID Label   Value 
1 100  docNumber  123 
2 100  expiryDate  1/1/2017 

Ma fonction DAL est la suivante.

public int updatedocDetails(int upld_id, string docnumber, string expiryDate, string username) 
{ 

} 

En fonction je suis RECEVOIR uploadId (ex 100) et (ex DocNumber pour 456 et ExpiryDate pour l'ex 2/2/2017)

Donc, ma table résultante devrait être

id uploadID Label   Value 
1 100  docNumber  456 
2 100  expiryDate  2/2/2017 

Y at-il de toute façon que je peux y parvenir en utilisant Linq? Nous vous remercions à l'avance

+2

Avez-vous essayé quelque chose? –

+0

oui var docs = (à partir de c dans db.tr_upld_content où c.upld_docid == upld_id sélectionnez c); foreach (var a dans docs) { a.upld_contentvalue = numéro_document; } –

+0

cela mettra à jour seulement une ligne, mais la deuxième rangée ne mettra pas à jour et pour la deuxième rangée je veux passer expirtydate pas docunumber –

Répondre

1

Quelque chose comme cela devrait fonctionner:

List<Record> records = (from p in Context.Records 
         where .... // add where condition here 
         select p).ToList(); 

records[0].Value = 456; 
records[1].Value = '2/2/2017'; 

Context.SaveChanges(); 
+0

superbe .. Très bien travaillé –