C# 对Sqlite C ORM代码生成有何建议

C# 对Sqlite C ORM代码生成有何建议,c#,sqlite,orm,C#,Sqlite,Orm,有谁能推荐一个Sqlite C ORM代码生成工具吗 我已经找到了哈巴尼罗框架,对此有何评论 谢谢 更新 在这种情况下,我选择了亚音速。为了帮助其他人,这里有一个创建类并同时使用亚音速和Sqlite的“基本”示例 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SQLite; usi

有谁能推荐一个Sqlite C ORM代码生成工具吗

我已经找到了哈巴尼罗框架,对此有何评论

谢谢

更新

在这种情况下,我选择了亚音速。为了帮助其他人,这里有一个创建类并同时使用亚音速和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;
        }
    }
}

您也可以使用linq to sql magic thingy

我不知道它是否正是您想要的;你已经看过这个了吗


您可以将其与ADO.NET 2.0或ADO.NET 3.5实体框架一起使用。

多个.NET对象关系映射程序支持SQLite。查看.NET ORM列表:在这里提到的那些ORM中,我知道并支持SQLite,实体框架通过中提到的提供程序也支持SQLite。我不确定其他人


在代码生成方面,LightSpeed和通过System.Data.SQLite的实体框架包括用于导入现有SQLite数据库模式的工具;我不太清楚NHibernate。披露:我在LightSpeed公司工作;尽管如此,还是要保持答案的真实性

其他人已经发布了关于NHibernate的文章,特别是关于和ADO.Net实体框架的文章,它们都很好。你可能还想看看。如果您正在考虑使用SQLite,那么您的数据库要求必须非常简单,并且非常易于使用。

这是一个非常强大的ORM,生成代码友好型

我非常确定LINQ to SQL magic thingy只适用于SQL Server。im不。。。但不管怎么说这有点糟糕。。。这有帮助吗?LINQ to SQL仅适用于MSSQL服务器。但是,实体框架为您提供了一个强大的LINQ提供程序,因此您可以做基本相同的事情。与SqLite配合使用也很好。是的,我的要求非常简单,只需要一个非常轻量级的数据存储,并且更愿意尝试SqLite而不是access。亚音速SimpleRepository对于小型应用程序和概念的快速验证非常好!关于如何将SimpleRepository连接到Sqlite数据提供程序或如何配置Sqlite连接字符串,有什么想法吗?我将使用亚音速SimpleRepository,谢谢您的帮助。我在问题中加入了一个演示Sqlite和亚音速的基本类,很高兴我能提供帮助。看起来你找到了连接字符串,对吗?这看起来也不错,只是尝试将亚音速连接到这个…谢谢,但链接是deadHabanero在这种情况下看起来太大了,不符合我的要求。我们有我们自己的框架,它也太重了,事实上,在这个例子中,我正在替换它。