1

Entity Framework 5 で ASP.net MVC 4 を使用しています。ASP.net の oauth メンバーシップを有効にしました。テンプレートは、oauth メンバーシップのテーブルを作成しました。これらのテーブルは、EF コンテキストからアクセスできません。oauth メンバーシップ テーブル 'webpages_OAuthMembership' からデータを取得しようとしています。

では、追加の SqlConnection なしでは EF コンテキストからアクセスできない oauth テーブルから行を取得するにはどうすればよいですか? または、このテーブルを ef コンテキストに移行する必要があると思いますか?

4

1 に答える 1

1

データベース優先のアプローチを使用している場合は、次の手順を実行します。

1) モデルの .edmx ファイルをデザイナーで開きます。

2) 任意の場所を右クリックしてクリックUpdate model from database

3) ポップアップ ウィンドウのAddタブで、Tablesノードを展開します。

4) 追加するこのテーブルのみを選択してwebpages_OAuthMembership、[完了] をクリックします。

5) モデルを保存し、次の行を dbcontext に追加します。

public DbSet<webpages_OAuthMembership> webpages_OAuthMembership { get; set; }

これで完了です。他のエンティティと同じように、そのエンティティを簡単にクエリできます。

var pID = "...";
var provider = db.webpages_OAuthMembership.Find(pID);

コード ファーストのアプローチを使用している場合、1 つの方法は、データベースに対して dbcontext によって SQL コマンドを実行することです。

1) oauth を表すクラスの作成を追加します。

public class OAuth
{
    public string Provider { get; set; }
    public string ProviderUserId { get; set; }
    public int UserId { get; set; }
}

2) 選択クエリを実行してプロバイダー情報を取得します。

var providers = dbctx.Database.SqlQuery(typeof(OAuth), "raw sql query", null);

このクエリを実行するとIEnumerable<OAuth>、データのコレクションが取得されます。

于 2013-08-12T18:12:10.147 に答える