Sto trasferendo il database del nostro prodotto su SQLite da un altro prodotto che supporta Guids. Come sappiamo, SQLite non supporta Guids. Ho creato un modello di entity framework 6 dal mio database (prima il database) e ho bisogno di creare una query da C# che paragona il Guid a uno passato dal codice.In che modo il provider SQLite Entity Framework 6 gestisce Guids?
Il problema è che non riesco a trovare alcuna documentazione su come il provider SQLite Entity Framework gestisce Guids. Una ricerca sul Web non ha trovato nulla di utile neanche per me. Solo domande sull'utilizzo di Entity Framework con SQLite.
Qualcuno può indicarmi la documentazione o forse dirmi come lavorare con Guids in un database SQLite attraverso un modello EF6?
SQLite non ha un esplicito tipo di colonna GUID, ma la loro memorizzazione con il tipo di affinità 'BLOB' funziona perfettamente bene. Non so molto su Entity Framework, ma sembra che i convertitori di tipi (oltre l'enumerazione) saranno solo in EF 7. Ma GUID ha un CT o un array di byte, ecc, quindi potrebbe essere piuttosto semplice. – peterchen
Li sto archiviando come BLOB nel mio modello, tuttavia, ho un problema. Il codice ha un'espressione simile a "ID == Guid ('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') che lancia un'eccezione perché il tipo di ID nel database è' Byte [] 'e la cosa a destra è un 'Guid'. Il codice in questione deve essere eseguito sul nostro client (il codice su cui sto lavorando) con SQLite e sul nostro server, dove il database è SQL Server.La stringa di espressione non può cambiare. fare qualcosa sul lato SQLite per far funzionare il confronto, ma non so cosa, ecco perché sto cercando la documentazione –
In SQLite, è possibile sovrascrivere la funzione Guid(): https: // www. sqlite.org/c3ref/create_function.html (non so come funziona attraverso EF) – peterchen