2012-04-19 10 views
0

私はc#とSystem.Data.SQLiteを使用しています 実行時にSQLiteでテーブルとして生成したいクラスがいくつかありますが、各クラスのSQL文字列をハードコードしたくありません。 私はこれを行うための最善の方法は何ですか? 私が望んで私のクラスとクラスのプロパティに属性を追加すると、私のためにSQL文字列を作成しますものになるだろうしようとしましたが... ここでは例です:私は必要なのSQLiteのテーブルとしてこれを作成するにはクラス定義に基づいてSQLiteでテーブルを動的に生成する方法はありますか?

[Table(Name = "tblDocument")] 
    public class Document 
    { 
    [Column(IsPrimaryKey = true, IsDbGenerated = true)] 
    public long DocumentId { get; set; } 

    [Column(CanBeNull = true)] 
    public string File { get; set; } 
    } 

string CreateSqlString = 
    @"CREATE TABLE [tblDocument] (" + 
    @"[DocumentId] INTEGER PRIMARY KEY NOT NULL," + 
    @"[File] TEXT NOT NULL)"; 

ありがとうございます。

+0

商用DBが存在しなければなりませんCastle.Core.dll、SubSonic.Core.dllとSystem.Data.SQLite.DLL

class Program { private const string ConnectionString = @"Data Source=c:\subsonic.db"; private const string ProviderString = @"System.Data.SQLite"; private static IDataProvider provider = ProviderFactory.GetProvider(ConnectionString, ProviderString); private static SimpleRepository repo = new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations); static void Main(string[] args) { var demo = new Demo { Name = "Test Demo", LaunchDate = DateTime.Now }; repo.Add(demo); } class Demo { public int ID { get; set; } public string Name { get; set; } public DateTime LaunchDate { get; set; } } } 

を参照していると仮定すると、

あなたが望むことができるEF/LINQサポートが付属しているsqliteのプロバイダ...もしそれがあなたのためのオプションであれば、私はリンクを提供することができます... – Yahia

+0

私はSystem.Data.SQLiteがEntity Frameworkをサポートしていると思いましたか? とにかく、私が望むものはEFを含むかもしれないし、含まないかもしれないが、私は本当に使用される技術には気をつけない。 –

答えて

1

多分SubSonicのようなものをお探しですか?これは、移行をオンにして実行することができ、それによってクラスのテーブルが生成されます。あなたはApp.configファイルが

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.data> 
     <DbProviderFactories> 
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> 
     </DbProviderFactories> 
    </system.data> 
</configuration> 
関連する問題