1

我正在使用 ASP.net MVC 4 和 Entity Framework 5。我已经激活了 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);

如果您使用的是代码优先方法,一种方法是通过 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 回答