任何人都可以推荐使用Sqlite C#ORM代码生成工具。
我找到了Habanero框架,对此有何评论?
由于
更新
在这种情况下,我已经使用了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;
}
}
}
答案 0 :(得分:4)
其他人已经发布了关于NHibernate(特别是Fluent NHibernate)和ADO.Net实体框架的文章。您可能还想查看SubSonic。如果您正在考虑使用SQLite,那么您的数据库要求必须非常简单,并且SubSonic's SimpleRepository option非常易于使用。
答案 1 :(得分:3)
几个.NET对象关系映射器支持SQLite。请参阅this question .NET ORM列表:其中提到的那些,我知道NHibernate和LightSpeed支持SQLite,实体框架通过{{3中提到的提供程序支持}}。我不确定别人。
在代码生成方面,LightSpeed和Entity Framework(通过System.Data.SQLite)包括用于导入现有SQLite数据库模式的工具;我不确定NHibernate。 (披露:我为制作LightSpeed的公司工作;虽然尽力保持答案!)
答案 2 :(得分:2)
答案 3 :(得分:0)
http://en.wikipedia.org/wiki/NHibernate
http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework
你也可以使用linq to sql magic thingy
答案 4 :(得分:0)
这是一个非常强大的ORM,生成代码友好http://www.schematrix.com