2017-03-17 16 views
0

bekam ich eine SQLite-Tabelle in xamarain (native android/pcl):Xamarin SQLite LINQ mit

[Table("Customer")] 
    public class Customer 
    { 
     [PrimaryKey, AutoIncrement] 
     public int Id { get; set; } 
     public Address Address{ get; set; } 
    } 

"Adresse" für eine zweite Tabelle.

1) Ist es möglich, die „Adresse“ Tabelle automatisch zu erstellen, wenn ich

connection.CreateTable<CustomerDto>(); 

nennen, weil sie es ist Abhängigkeit?

2) Ist es möglich, einen LINQ-Ausdruck zu verwenden, die automatisch die richtige "Adresse" Karten zu diesem "Customer

Antwort

1

In meiner .NET-Standard-Bibliothek Ich verwende:

  • " sQLite-net ": "1.0.8"

  • "sQLite-net-pcl": "1.3.1"

My a pproach sollte "initial state models" aller Tabellen erstellen, die als abstrakt gekennzeichnet sind (also kein Risiko besteht, dass jemand sie instanziieren könnte), indem nur die in der Datenbank notwendigen Felder definiert und die Primärschlüssel (in meinem Fall GUID) verwendet werden nur um Tabellen am Anfang zu erstellen. Nach Änderung der Datenstrukturen immer mit ALTER-Anweisungen. In einem anderen Namensraum eine Duplizierung aller Modelle, diesmal mit Gettern/Settern und anderen Utilities, und ich benutzte diese als "echte Modelle".

Bei verknüpften Modelle repräsentieren verwendete ich ein Feld als Id und ein anderes als Modell (aktualisiert, wenn notwendig):

public int IdAddress { get; set; } 
[Ignore] 
public Address Address { get; set; } 

Ich glaube nicht SQLite-net tun können, was Sie fragen, weil es ein sehr ist Leichtgewichtiger Orm, und selbst wenn es mir lieber wäre, automatisiere nicht zu viel wegen meiner früheren Erfahrungen mit Hibernate.

https://github.com/praeclarum/sqlite-net

https://components.xamarin.com/view/sqlite-net

0

Es klingt wie Sie bei Verwendung von Entity Framework aussehen sollte, denn das können Sie LINQ verwenden, um mit SQLite. Die Standard-Bibliothek im Web (nicht Entity-Framework) ist sehr leicht und hat nicht viel Funktionalität für die ORM-ähnliche Funktionalität, nach der Sie suchen.

Wenn Sie sich für eine leichtere Bibliothek suchen, können Sie diese verwenden, aber es wird nicht zulassen, dass Sie LINQ Ausdrücke schreiben, ohne Ihre eigene ORM zu schreiben: https://github.com/MelbourneDeveloper/SQLite.Net.Standard

Verwandte Themen