从webpages_OAuthMembership表获取数据ASP.net MVC 4

时间:2013-08-11 20:49:41

标签: asp.net-mvc-4 oauth entity-framework-5

我正在使用ASP.net MVC 4和Entity Framework 5.我已经激活了ASP.net的oauth成员资格。模板为oauth成员资格创建了表。这些表不能从EF上下文访问。我正在尝试从oauth会员表'webpages_OAuthMembership'获取数据。

那么如何在没有额外SqlConnection的情况下从无法从EF上下文访问的oauth表中获取一行,或者您认为我应该将此表迁移到ef上下文(但是如何)?

1 个答案:

答案 0 :(得分: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>个数据集合。