Vorrei usare LinqToSql per aggiungere un record in una table la cui primary key e' composta da 4 colonne.
quando creo la mia istnaza conosco le prime 3 colonne, ma la 4 deve essere una sequence univoca all'interno del gruppo determinato dalle prime 3 colonne.
ovvero
col1=a + col2=a + col3=a + col4=1 first row
col1=a + col2=a + col3=a + col4=2 second row

vorrei creare con linqtosql la mia istanza, lasciare empt col4, eseguire submitChanges and avere la mia col4 valorizzata correttamente dopo che la mia istnaza e' stata salvata nel db

so che potrei farlo con una sp creata a doc e linkata al mio objectmodel, ma mi domandavo se LinqToSql fornisce qualche facilities per ottenere lo stesso risultato che sia quando la primary key viene da un sequence(sqlserver identity)

grazie
Ciao,

se non ho capito male vuoi recuperare l'Id della Pk identity ?
Se è così:
db.MyObject.InsertOnSubmit(myObjectEntity);
                                                db.SubmitChanges();
                                                int lastId= myObjectEntity.PkID;

Modificato da fabrica il 06 agosto 2008 17.18 -

Fabrizio Canevali
no non voglio recuperare la PK as Identity, non uso quello nella mia table
LinqToSql deve generarmi un valida primary key basata sulla combinazione di 4 colonne dove le prime 3 sono passate e la quarta deve essere generata facendo +1 rispetto alla ultima inserita
crixo ha scritto:
no non voglio recuperare la PK as Identity, non uso quello nella mia table
LinqToSql deve generarmi un valida primary key basata sulla combinazione di 4 colonne dove le prime 3 sono passate e la quarta deve essere generata facendo +1 rispetto alla ultima inserita
Ciao,
se la quarta è Identity lo fa sql altrimenti fai un Max +1 sulla quarta colonna.

Fabrizio Canevali
Grazie per il suggerimento... ma avevo un'idea su come farlo in sql :-)
mi domando se e come farlo con LinqToSql senza agganciarci una sp ad hoc!
Modificato da crixo il 06 agosto 2008 21.04 -
Ciao,

beh, quello che faresti in sql lo fai anche con linq (o quasi ;)

Fabrizio Canevali
3.082 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

LINQ To SQL non può generare una parte della chiave. O lo fa il database o lo fai tu. Quindo la risposta è che devi fare la cosa a mano.
HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.