0

私は最初に ef コードを初めて使用し、最初にリバース エンジニア コードを使用して、Microsoft SQL Server 2008 で既存のデータベースのモデルを作成しました。

私が抱えている問題は、接続文字列でユーザー ID とパスワードを提供しているにもかかわらず、統合セキュリティを使用しているかのようにコンピューター名について不平を言うときに認証エラーが発生することです (私はそうではありません)。

私が得るエラーはこれです:

ログインで要求されたデータベース \"edmTestDBContext\" を開けません。ログインに失敗しました。\r\nユーザー 'jwelty-thinkpad\jwelty' のログインに失敗しました。

私のconnectionStringはこれです:

データ ソース=srv-123;初期カタログ=edmTestDB;セキュリティ情報を保持する=True;ユーザー ID=user;パスワード=userpass;MultipleActiveResultSets=True

私のユーザーIDを無視して、代わりに私のマシン名を使用しているように思えます。

興味深いことに、接続文字列は Entity Framework ツールによって自動生成され、モデルの構築には機能しましたが、実際にモデルをソース データベースに接続するには機能しませんでした。

何が起こっているかについて何か考えはありますか?

これはSql Server Management Studioで使用するものであり、最初にデータベースを作成した方法でもあるため、ユーザー名/パスワードには完全な権限があります。

「Integrated Security=False;」を追加してみました それは何の助けにもなりませんでした。

4

2 に答える 2

0

EFが接続文字列を見つけていないようです。使用している構成ファイルにあり(クラスライブラリ構成からアプリケーション構成にコピーする必要がある場合があります)、コンテキストクラスと同じ名前であるか、DbContextに次の呼び出しで名前を指定していることを確認してください。適切なベースコンストラクタ。例えば:

public EdmTestDBContext()
 : base("name=MyConnectionStringName")
{
}
于 2012-05-31T19:56:00.363 に答える
0

EF Code-first には、DbContext から派生したコンテキスト クラスの名前を使用して .config ファイル内の関連する接続文字列を検索するなど、組み込みの規則がいくつかあります。したがって、コンテキスト クラスの名前がBlogContextの場合、次の connectionString が最初に検索されます。

<connectionStrings>
    <clear />
    <add
      name="BlogContext"
...
于 2012-06-01T05:51:29.937 に答える