首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Sqlite代码生成的建议

关于Sqlite代码生成的建议
EN

Stack Overflow用户
提问于 2009-12-19 22:28:23
回答 4查看 15.8K关注 0票数 10

有人推荐Sqlite代码生成工具吗?

我已经找到了Habanero框架,对此有什么评论吗?

谢谢

更新

在这件事上我已经和亚音速一起走了。为了帮助其他人,这里有一个创建类并将Subsonic和Sqlite一起使用的“基本”示例。

代码语言:javascript
复制
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;
        }
    }
}
EN

回答 4

Stack Overflow用户

发布于 2009-12-19 23:25:28

几个.NET对象关系映射器支持SQLite。请参见这个问题 -- .NET ORMs的列表:在这里提到的列表中,我知道NHibernateLightSpeed支持SQLite,实体框架通过艾沃尔夫的回答中提到的提供者所做的事情也是如此。我对其他人不太确定。

在代码生成方面,LightSpeed和实体框架(通过System.Data.SQLite)包括导入现有SQLite数据库模式的工具;我不确定NHibernate。(信息披露:,我为一家制造LightSpeed的公司工作;不过,我试着让答案真实!)

票数 3
EN

Stack Overflow用户

发布于 2009-12-19 22:43:10

我不知道这是不是你要找的东西,你已经看过了吗?

http://sqlite.phxsoftware.com/

您可以在ADO.NET 2.0或ADO.NET 3.5实体框架中使用它。

票数 2
EN

Stack Overflow用户

发布于 2009-12-19 22:42:39

http://en.wikipedia.org/wiki/NHibernate

框架

您还可以使用linq来执行sql魔术操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1934303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档