Bất kỳ ai cũng có thể giới thiệu công cụ tạo mã Sqlite C# ORM.Bất kỳ đề xuất nào cho việc tạo mã Sqlite C# ORM
Tôi đã tìm thấy khung công tác Habanero, mọi nhận xét về điều đó?
Cảm ơn
CẬP NHẬT
tôi đã đi với cận âm trong trường hợp này. Để giúp đỡ bất cứ ai khác, đây là một ví dụ 'cơ bản' của việc tạo một lớp và sử dụng Subsonic và Sqlite cùng nhau.
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;
}
}
}
Habanero trông quá lớn so với yêu cầu của tôi trong trường hợp này. Chúng tôi có khuôn khổ riêng của chúng tôi cũng là quá nặng và trên thực tế thay thế nó trong trường hợp này. –