2010-02-10 3 views

Répondre

6

Créez un fichier de concepteur de classes linq à sql. Ensuite, déposez la table Utilisateurs sur la surface du concepteur.

using (TheDataContext dc = new TheDataContext) 
{ 
    //pull all users into memory, not recommended for large tables. 
    List<User> users = dc.Users.ToList(); 

    foreach(User theUser in users) 
    { 
    theUser.ShowData = false; 
    } 
    //send all these property changes back to the database. 
    dc.SubmitChanges(); 
} 

Et pour me prémunir contre downvoting:

using (TheDataContext dc = new TheDataContext()) 
{ 
    dc.ExecuteCommand("UPDATE Users SET ShowData = 0"); 
} 
2

Si cette colonne est dans une table SQL Server, exécutez simplement cette instruction SQL:

update Users set ShowData = 0 // where ... 

ne pensez même pas sur le chargement tous les utilisateurs en mémoire, définissant une seule propriété, puis les enregistrant dans la base de données.

S'il s'agit d'une table en mémoire, vous n'avez pas réellement besoin de LINQ to SQL.

+0

IIRC, Linq-2-Sql utilise IQueryable aucune donnée ne seraient chargées à moins qu'il a été expressément demandé, que dit, en ajoutant une procédure stockée serait probablement une bonne idée , pour s'assurer que SQL optimal a été envoyé le fil. – Nate

3

Créer une procédure stockée

CREATE PROCEDURE HideData 
AS 
update Users set ShowData = 0 

Utilisation de votre explorateur de serveur déroulant cette procédure dans votre DBML

Et dans votre funct ion:

using (CustomDataContext context= new CustomDataContext()) 
{ 
    context.HideData(); 
} 
3

Cet exemple montre comment faire tout en utilisant Linq.

using (MyDataContext dataContext = new MyDataContext(connectionString)) 
{ 
    dataContext.Users.ToList().ForEach(user => user.ShowData = false); 

    // commit changes made to entities (generates UPDATE statements for you) 
    dataContext.SubmitChanges(); 
} 

Ce qui se passe est:

// IQueryable<User> (query setup) 
dataContext.Users 
// from IEnumerable<User> to List<User> (pull from Sql Server into memory) 
.ToList() 
// via enumerating list of User entities (now in memory) 
.ForEach 
(
    // define entity in this iteration 
    user => 
     // define operation on entity 
     user.ShowData = false; 
);