2011-01-13 14 views
2

私はpostgresqlにdevartコンポーネントのdotconnectを使用しています。私はエンティティにlinqを使用してサイトを作成しましたが、私は各ユーザーに別々のデータベースを持たせたいと思います。これは、ログインしている各人物の接続文字列を変更する必要があることを意味します。ただし、新しい接続文字列などを生成する方法の主要な部分は理解していますが、オブジェクトコンテキストオブジェクトのパラメータとして戻します私は、エンティティの接続を生成するクラスを作成する場合は、エラーlinqからエンティティへのデータベース接続文字列の変更

「ユーザーidキーワードはサポートされていません、」

とエラーメッセージがに変わります「指定されたメタデータリソースを読み込むことができません」

これらのインスタンスで間違っていたことを解決できません。

答えて

5

大丈夫です。いつものように、この質問を投稿したとき、約3分後に問題が見つかりました。一般的な目的のために、エンティティの接続文字列は、クールな小さな

解像度を持つ必要があります:// */

これは、メタデータの作業を行います。これはメタデータリソースの問題を解決し、これが機能します。私のように他の人がこれを行うのに時間を費やしたのを助けるために、私はそういう方法でクラスを作りました。

public static string getConnString(string database) 
    { 
     string connectionstring = "User Id=USER ID HERE;Password=PASSWORD HERE;Host=server;Database="+database+";Persist Security Info=True;Schema=public"; 

     EntityConnectionStringBuilder newconnstring = new EntityConnectionStringBuilder(); 
     newconnstring.Metadata = @"res://*/"; 
     newconnstring.Provider = "Devart.Data.PostgreSql"; 
     newconnstring.ProviderConnectionString = connectionstring; 


     return newconnstring.ToString(); 

    } 

は、その後、我々は、通常のLINQ文と同じようにそれを参照することができますので、

dataEntities data = new dataEntities(databaseConnection.getConnString(INSERTDBNAMEHERE); 

のようなコンストラクタを作成します。 Simples !!

関連する問題