2009-12-19 10 views
8

¿Alguien puede recomendar una herramienta de generación de código Sqlite C# ORM.Cualquier recomendación para Sqlite C# generación de código ORM

He encontrado el marco Habanero, ¿algún comentario al respecto?

Gracias

ACTUALIZACIÓN

me han ido con subsónico en este caso. Para ayudar a alguien más, aquí hay un ejemplo "básico" de crear una clase y usar Subsonic y Sqlite juntos.

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

Habanero se ve demasiado grande para mis necesidades en este caso. Tenemos nuestro propio marco que también es demasiado pesado y, de hecho, lo estamos reemplazando en este caso. –

Respuesta

2

Otros ya han publicado acerca de NHibernate (especialmente con Fluent NHibernate) y ADO.Net Marco de la entidad que son estupendos. También es posible que desee mirar SubSonic. Si está considerando SQLite, sus requisitos de base de datos deben ser bastante simples y SubSonic's SimpleRepository option es muy fácil de usar.

+0

Sí, mis requisitos son muy simples, solo necesito un almacén de datos muy liviano y prefiero probar sqlite que acceder. –

+0

¡El SubSonic SimpleRepository se ve bastante bien para aplicaciones pequeñas y pruebas rápidas de conceptos! ¿Alguna idea sobre cómo conectar un SimpleRepository al Sqlite DataProvider o cómo configurar una cadena de conexión Sqlite? –

+0

Voy a ir con Subssonic SimpleRepository, gracias por la ayuda. (He incluido una clase básica que demuestra Sqlite y Subsónico en la pregunta) –

0
+1

Estoy bastante seguro de que la "cosa mágica de LINQ to SQL" solo funciona con SQL Server. – itowlson

+0

im no ... pero es un poco apesta de todos modos ... esto ayuda? http://sqlite.phxsoftware.com/ –

+0

LINQ to SQL es solo para el servidor MSSQL. Pero, Entity Framework te ofrece un fuerte proveedor de LINQ para que puedas hacer básicamente lo mismo. –

2

No sé si es exactamente lo que está buscando; ¿Ya has visto esto?

http://sqlite.phxsoftware.com/

Se puede utilizar con ADO.NET 2.0 o el 3.5 ADO.NET Entity Framework.

+0

Esto también se ve bien, simplemente tratando de conectar SubSonic a esto ... –

+1

gracias, pero el enlace está muerto –

3

Varios mapeadores relacionales de objetos .NET son compatibles con SQLite. Ver this question una lista de .MON ORMs: de los mencionados allí, sé que y LightSpeed soportan SQLite, como lo hace Entity Framework a través del proveedor mencionado en eWolf's answer. No estoy seguro acerca de los demás.

En términos de generación de código, LightSpeed ​​y Entity Framework (a través de System.Data.SQLite) incluyen herramientas para importar un esquema de base de datos SQLite existente; No estoy seguro de NHibernate. (Divulgación: Trabajo para la empresa que fabrica LightSpeed, tratando de mantener la respuesta, aunque de hecho)

Cuestiones relacionadas