有关Sqlite C#ORM代码生成的任何建议

Mar*_*man 9 c# sqlite orm

任何人都可以推荐一个Sqlite C#ORM代码生成工具.

我找到了Habanero框架,对此有何评论?

谢谢

UPDATE

在这种情况下我和Subsonic一起去了.为了帮助其他人,这里是一个创建类并一起使用Subsonic和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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*wer 5

其他人已经发布了有关 NHibernate (尤其是Fluent NHibernate)和 ADO.Net Entity Framework 的文章,它们都很棒。您可能还想看看SubSonic。如果您正在考虑 SQLite,那么您的数据库要求一定相当简单,并且SubSonic 的 SimpleRepository 选项非常易于使用。