Ich portiere die Produktdatenbank auf SQLite von einem anderen Produkt, das Guids unterstützt. Wie wir wissen, unterstützt SQLite keine Guids. Ich habe ein Entity Framework 6 Modell aus meiner Datenbank (Datenbank zuerst) erstellt und ich muss eine Abfrage von C# erstellen, die die Guid mit einer aus dem Code übergeben vergleicht.Wie behandelt der SQLite Entity Framework 6-Provider Guids?
Die Sache ist, ich kann keine Dokumentation darüber finden, wie der SQLite Entity Framework-Anbieter Guids behandelt. Eine Websuche hat auch nichts Nützliches für mich gefunden. Nur Fragen zur Verwendung von Entity Framework mit SQLite.
Kann mir jemand auf die Dokumentation verweisen oder mir vielleicht sagen, wie man mit Guids in einer SQLite-Datenbank über ein EF6-Modell arbeitet?
SQLite keinen expliziten Spaltentyp GUID hat, aber sie mit Typ-Affinität 'BLOB' arbeitet völlig in Ordnung zu speichern. Ich weiß nicht viel über Entity Framework, aber es scheint, dass Typkonverter (abgesehen von Enums) nur in EF 7 sein werden. Aber GUID hat einen CTor von Bytearray usw., also könnte es ziemlich einfach sein. – peterchen
Ich speichere sie als BLOBs in meinem Modell, aber ich habe ein Problem. Der Code hat einen Ausdruck ähnlich "ID == Guid ('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'), der eine Ausnahme auslöst, weil der Typ der ID in der Datenbank' Byte [] 'ist und das Ding auf der rechten Seite ist ein "Guid". Der fragliche Code muss auf unserem Client (der Code, an dem ich gerade arbeite) mit SQLite und auf unserem Server laufen, wo die Datenbank SQL Server ist. Der Ausdruck String kann nicht geändert werden. Ich habe etwas auf der SQLite-Seite zu tun, damit der Vergleich funktioniert Ich weiß nur nicht, was. Deshalb suche ich nach der Dokumentation. –
In SQLite können Sie die Funktion Guid() überschreiben: https: // www. sqlite.org/c3ref/create_function.html – peterchen