我正在使用ASP.net MVC 4和Entity Framework 5.我已经激活了ASP.net的oauth成员资格。模板为oauth成员资格创建了表。这些表不能从EF上下文访问。我正在尝试从oauth会员表'webpages_OAuthMembership'获取数据。
那么如何在没有额外SqlConnection的情况下从无法从EF上下文访问的oauth表中获取一行,或者您认为我应该将此表迁移到ef上下文(但是如何)?
答案 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>
个数据集合。