2009-12-19 5 views
8

Kann jemand eine Sqlite C# ORM-Code-Generation-Tool empfehlen.Irgendwelche Empfehlungen für Sqlite C# ORM Code Generation

Ich habe das Habanero-Framework gefunden, irgendwelche Kommentare dazu?

Dank

UPDATE

Ich habe in diesem Fall mit Subsonic gegangen. Um anderen zu helfen, gibt es hier ein "grundlegendes" Beispiel zum Erstellen einer Klasse und zum gemeinsamen Verwenden von Subsonic und Sqlite.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Data.SQLite; 
using SubSonic; 
using SubSonic.Schema; 
using SubSonic.Repository; 
using SubSonic.DataProviders; 

namespace SubsonicSqliteTest 
{ 
    public class User 
    { 
     public User() 
     { 
      ID = Guid.NewGuid(); 

      // Set Defaults 
      FirstName = String.Empty; 
      LastName = String.Empty; 
      Username = String.Empty; 
      Password = String.Empty; 
      IsAdministrator = 0; 
     } 

     public Guid ID { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public string Username { get; set; } 
     public string Password { get; set; } 
     public int IsAdministrator { get; set; } 
     public DateTime? CreatedDate { get; set; } 
     public DateTime? LastUpdatedDate { get; set; } 

     public static User Get(Guid id) 
     { 
      string databasePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Application.ExecutablePath), "Database.db"); 
      IDataProvider provider = ProviderFactory.GetProvider("Data Source=" + databasePath + ";Version=3;New=True;Pooling=True;Max Pool Size=1;", "System.Data.SQLite"); 
      var repository = new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations); 
      var users = from user in repository.All<User>() 
         where user.ID == id 
         select user; 

      foreach (var user in users) 
      { 
       return user; 
      } 

      return null; 
     } 

     public User Save() 
     { 
      string databasePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Application.ExecutablePath), "Database.db"); 
      IDataProvider provider = ProviderFactory.GetProvider("Data Source=" + databasePath + ";Version=3;New=True;Pooling=True;Max Pool Size=1;", "System.Data.SQLite"); 
      var repository = new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations); 
      repository.Add(this); 
      return this; 
     } 
    } 
} 
+0

Haba für meine Anforderungen in diesem Fall zu groß aussehen generieren. Wir haben unseren eigenen Rahmen, der auch zu schwer ist und ihn in diesem Fall tatsächlich ersetzt. –

Antwort

2

Andere haben bereits über NHibernate (vor allem mit Fluent NHibernate) veröffentlicht und ADO.Net Entity Framework, die beide groß. Sie können auch sehen, SubSonic. Wenn Sie SQLite in Betracht ziehen, dann müssen Ihre Datenbankanforderungen relativ einfach sein und SubSonic's SimpleRepository option ist super einfach zu bedienen.

+0

Ja, meine Anforderungen sind ver einfach, brauche nur einen sehr leichten Datenspeicher und würde lieber sqlite als den Zugriff versuchen. –

+0

Das SubSonic SimpleRepository sieht gut aus für kleine Apps und schnelle Proof-of-Concepts! Irgendeine Idee, wie man ein SimpleRepository mit Sqlite DataProvider verbindet oder wie man eine SQLite-Verbindungszeichenfolge konfiguriert? –

+0

Ich werde mit Subsonic SimpleRepository gehen, danke für die Hilfe. (Ich habe eine grundlegende Klasse, die Sqlite und Subsonic in der Frage zeigt) –

0
+1

Ich bin mir ziemlich sicher, dass das "LINQ to SQL magic dingy" nur mit SQL Server funktioniert. – itowlson

+0

ich bin nicht ... aber es irgendwie irgendwie saugt ... das hilft? http://sqlite.phxsoftware.com/ –

+0

LINQ to SQL ist nur für MSSQL-Server. Aber das Entity Framework bietet Ihnen einen starken LINQ-Provider, so dass Sie im Grunde die gleichen Dinge tun können. –

2

Ich weiß nicht, ob es genau das, was Sie suchen; Hast du das schon gesehen?

http://sqlite.phxsoftware.com/

Sie können es mit ADO.NET 2.0 verwenden oder das ADO.NET Entity Framework 3.5.

+0

Das sieht auch gut aus, nur versuchen, SubSonic zu verbinden ... –

+1

danke, aber Link ist tot –

3

Mehrere objekt-relationale .NET-Mapper unterstützen SQLite. Siehe this question eine Liste von .NET ORMs: von den dort erwähnten, weiß ich, dass und LightSpeed SQLite unterstützen, ebenso wie das Entity Framework über den in eWolf's answer erwähnten Provider. Ich bin mir über andere nicht sicher.

Hinsichtlich der Codegenerierung enthalten LightSpeed ​​und das Entity Framework (über System.Data.SQLite) Tools zum Importieren eines vorhandenen SQLite-Datenbankschemas; Ich bin mir nicht sicher über NHibernate. (Disclosure: ich für das Unternehmen arbeiten, die Light macht, versuchen, obwohl die Antwort sachlich zu halten)

Verwandte Themen