Ho un database che fa parte di uno schema di replica di merge che ha un GUID in quanto è PK. In particolare, il tipo di dati è uniqueidentifier, valore predefinito (newsequentialid()), RowGUID è impostato su Sì. Quando faccio un InsertOnSubmit (CaseNote) pensavo di poter lasciare CaseNoteID da solo e il database avrebbe inserito il successivo GUID sequenziale come fa se immetti manualmente una nuova riga in MSSMS. Invece invia 00000000-0000-0000-0000-000000000000. Se aggiungo CaseNoteID = Guid.NewGuid(),
, ottengo un GUID ma non sequenziale (ne sono abbastanza sicuro).LINQ to SQL Inserisci GUID sequenziale
C'è un modo per consentire a SQL di creare il successivo ID sequenziale su LINQ InsertOnSubmit()?
Per riferimento è il codice che sto usando per inserire un nuovo record nel database.
CaseNote caseNote = new CaseNote
{
CaseNoteID = Guid.NewGuid(),
TimeSpentUnits = Convert.ToDecimal(tbxTimeSpentUnits.Text),
IsCaseLog = chkIsCaseLog.Checked,
ContactDate = Convert.ToDateTime(datContactDate.Text),
ContactDetails = memContactDetails.Text
};
caseNotesDB.CaseNotes.InsertOnSubmit(caseNote);
caseNotesDB.SubmitChanges();
Sulla base di uno dei suggerimenti di seguito ho attivato l'Autogenerated in LINQ per quella colonna e ora ottengo il seguente errore ->La tabella di destinazione dell'istruzione DML non può avere alcun trigger attivata se la dichiarazione contiene una clausola OUTPUT senza clausola INTO. Idee?
Ho provato questo e ho ora ottenere il seguente errore -> La tabella di destinazione dell'istruzione DML non può avere alcun trigger attivati se l'istruzione contiene una clausola OUTPUT senza clausola INTO. –
perché hai accettato la risposta se non funziona? – guiomie
Per me questo era già impostato, ma il DB tenta ancora di assegnare il valore predefinito di 0 anziché guidarne uno. – DCShannon