2010-06-21 7 views
1

Subsonic 3.0 est mise à jour plusieurs lignes au lieu de simplement celui qu'il est censéSubsonic met à jour plusieurs lignes au lieu de 1?

DB Table is defined as follows - 
Col1 int NOT NULL 
Col2 Text NOT NULL 
Col3 INT NOT NULL 
ColX NTEXT 
COLY NTEXT 

Primary Key = Col1 + Col2 + Col3 
.... 

la sélection expr est comme suit

myTable a = myTable.SingleOrDefault(x => x.Col1 = 1 && x.Col2 = 'abc' && x.Col3 = 9); 
if (a == null) 
{ 
    // not relevant in this case ! 
} 

.... some code 
a.ColX = myString1; 

a.Update(); 

@ ce point toutes les lignes où Col1 = 1 sont fixés à LaChaine1

env - db est sql 2008 R2 express, .net 3.5, C#

+1

'x => x.Col1 = 1 && x.Col2 = 'abc' && x.Col3 = 9' est non valide (compilable) C#. Vraisemblablement, vous voulez dire '=='. –

+0

Si votre requête Subsonic renvoie plus d'un enregistrement pour cette clé primaire, alors une mise à jour de cette clé primaire va bien sûr mettre à jour chaque enregistrement avec cette clé. Le .SingleOrDefault n'est pas pertinent. –

Répondre

1

SubSonic ne semble pas soutenir primaire composite clés - vous devrez créer une clé de substitution pour faire ce que vous voulez.

Voir aussi: SubSonic 3 and multiple PK columns

+0

doh! je suppose que cela aide à lire le jeu de fonctionnalités avant d'utiliser un produit :) merci! – Kumar

Questions connexes