我正在使用 ASP.net MVC 4 和 Entity Framework 5。我已经激活了 ASP.net 的 oauth 成员资格。该模板为 oauth 成员创建了表。无法从 EF 上下文访问这些表。我正在尝试从 oauth 成员表“webpages_OAuthMembership”中获取数据。
那么,如果没有额外的 SqlConnection,我如何从 EF 上下文中无法访问的 oauth 表中获取一行,或者您认为我应该将此表迁移到 ef 上下文(但是如何)?
我正在使用 ASP.net MVC 4 和 Entity Framework 5。我已经激活了 ASP.net 的 oauth 成员资格。该模板为 oauth 成员创建了表。无法从 EF 上下文访问这些表。我正在尝试从 oauth 成员表“webpages_OAuthMembership”中获取数据。
那么,如果没有额外的 SqlConnection,我如何从 EF 上下文中无法访问的 oauth 表中获取一行,或者您认为我应该将此表迁移到 ef 上下文(但是如何)?
如果您使用的是数据库优先方法,请执行以下操作:
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>
组数据。