2017-01-09 5 views
0

私はエンティティフレームワークを初めて使用しています。私はデータベースと対話しなければならないモジュールを作成しています。モジュールは一般的なので、異なるプロジェクトで参照することができます。それらのプロジェクトは異なるデータベースを持つので、混乱は、毎回異なるようになるので、私のライブラリでそのデータベースへの参照をどのように取得するのだろうか?私は、SqlConnectionオブジェクトを使用してされなければならない場合は、(共有プロジェクト間で)同じであるべきEFデータベース構造(データコンテキスト)を使用している場合は、定義されない限り、それは、C#でのdllファイルを使用したEntity Framework

class myClass 
{ 
    SqlConnection con; 
    public myClass(SqlConnection con) 
    { 
     this.con=con; 
    } 

    public DataTable DoSomething() 
    { 
     try 
     { 
      connection.open(); 
      using (SqlDataAdapter com= new SqlDataAdapter("Select * from table1",con)) 
      { 
       DataTable temp = new DataTable(); 
       com.SelectCommand.ExecuteNonQuery(); 
       com.Fill(temp); 
       return temp; 
      } 
     } 
     catch (Exception ex) {} 
    } 
} 
+0

私は混乱しています。あなたはEFについて話していますが、あなたのコードは 'SqlDataAdapter'と' DataTable'を使います。これはEntity Frameworkとは関係ありません。 – Marc

+0

なぜADO.netを使用するのですか? –

+0

@Marc私はEntity Frameworkで達成したいことを示すためにSQLアダプタを使用しました –

答えて

0

EF Code Firstをクラスライブラリプロジェクトに実装できます。モデルを使用する他のプロジェクトでは、そのプロジェクトへの参照があります。各プロジェクトには独自のデータベースがあり、各プロジェクトには独自の接続文字列が必要です。app.configファイルに配置することができます。エンティティフレームワークは、あなたのクラスライブラリプロジェクトであなたのapp.configファイルに以下のような記述を追加します:

<entityFramework> 
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
    <parameter value="Your Connection string" /> 
    </parameters> 
</defaultConnectionFactory> 
<providers> 
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
</providers> 

あなたがやるか、少なくとも私がやったと私のために働いていたものを追加することであるしなければならない唯一の事エンティティを他のプロジェクトに追加し、それぞれの接続文字列を変更します。

希望します。

0

を好きになるでしょう、目的を説明するための

データコンテキストをそれぞれ別々にすることで、接続文字列を(個々のプロジェクトごとに)設定ファイルに保存することができます。

関連する問題