2016-11-17 1 views
3

ASP.NET CoreプロジェクトでSQlLiteデータベースを使用したいが、Entity Frameworkを使用しない。ASP.NETコアプロジェクトでエンティティフレームワークなしのSQLLiteデータベースを使用

私はSQLLiteデータベース(SQLServerのために使用されているSystem.Data.SqlClient.SqlClientFactory.Instanceのようなもの)に食料調達するが、私はそれを見つけることができませんDbProviderFactory &から派生するクラスを使用するべきだと思います。

私が出会ったすべての例は、エンティティフレームワークを使用するように提案していますが、私はそれを使用したくありません。

答えて

4

あなたは、公式レポでそれを持っている: https://github.com/aspnet/Microsoft.Data.Sqlite

そして、ここでは一例です: http://www.bricelam.net/2015/04/29/sqlite-on-corefx.html

EDIT:それは将来的に消える場合には、リンクのコンテンツを追加します。

プロバイダは、System.Data.Commonコントラクトの上に構築されます。この契約は、ADO.NETプロバイダーモデルの非常に小さなサブセットです。プロバイダを使用することは、ADO.NETに精通している人にとってはとても自然なことです。

using (var connection = new SqliteConnection("" + 
    new SqliteConnectionStringBuilder 
    { 
     DataSource = "hello.db" 
    })) 
{ 
    connection.Open(); 

    using (var transaction = connection.BeginTransaction()) 
    { 
     var insertCommand = connection.CreateCommand(); 
     insertCommand.Transaction = transaction; 
     insertCommand.CommandText = "INSERT INTO message (text) VALUES ($text)"; 
     insertCommand.Parameters.AddWithValue("$text", "Hello, World!"); 
     insertCommand.ExecuteNonQuery(); 

     var selectCommand = connection.CreateCommand(); 
     selectCommand.Transaction = transaction; 
     selectCommand.CommandText = "SELECT text FROM message"; 
     using (var reader = selectCommand.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
       var message = reader.GetString(0); 
       Console.WriteLine(message); 
      } 
     } 

     transaction.Commit(); 
    } 
} 

バッチ処理

ライブラリはネイティブSQLiteのインタフェースに追加する唯一の本当の機能はバッチ処理です。ネイティブインタフェースは、一度に1つのステートメントのコンパイルと実行をサポートします。このライブラリは、完全に透過的に感じられるはずの方法でバッチ処理を実装します。バッチ処理の使用例を次に示します。

using (var connection = new SqliteConnection("Data Source=hello.db")) 
{ 
    var command = connection.CreateCommand(); 
    command.CommandText = 
     "UPDATE message SET text = $text1 WHERE id = 1;" + 
     "UPDATE message SET text = $text2 WHERE id = 2"; 
    command.Parameters.AddWithValue("$text1", "Hello"); 
    command.Parameters.AddWithValue("$text2", "World"); 

    connection.Open(); 
    command.ExecuteNonQuery(); 
} 

プラットフォーム:

現在、Microsoft.Data.Sqliteは、次のプラットフォームで動作します。

  • .NET Frameworkの
  • モノ
  • .NETのコア
  • .NETネイティブ
  • CoreCLR
  • のWindowsユニバーサル
+0

感謝。 mysqlのクラスに関する情報 –

+0

@AbdulRehmanSayed探しているパッケージは「MySql.Data.Core」 – mattinsalto

+0

@AbdulRehmanSayed、http://insidemysql.com/mysql-connector-net-for-net-core-1-0/ – mattinsalto

関連する問題