【发布时间】:2015-09-27 20:57:56
【问题描述】:
我正在尝试根据over here 提出的想法在Asp .Net 5 beta 7 中实现自定义UserStore。
这是我的自定义用户商店的代码:
public class ApplicationUserStore : UserStore<ApplicationUser>
{
public ApplicationUserStore(DbContext context)
: base(context)
{
}
public async override Task<ApplicationUser> FindByIdAsync(string userId)
{
var user = await base.FindByIdAsync(userId);
this.Context.Entry(user).Reference(u => u.Subject).Load();
return user;
}
}
我在这段代码中遇到了两个问题。
- 在基类中没有要覆盖的方法 FindByIdAsync
- 在 FindByIdAsync 内部,找不到方法 Reference
我也不确定在编译后如何配置自定义用户存储。
更新:
我通过将 FindByIdAsync 覆盖的定义更改为以下解决了第一个问题:
public async override Task<ApplicationUser> FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
第二个问题仍然是一个问题。如何在EF7 中指定我希望显式加载我的ApplicationUser 实体的引用属性Subject?在 EF6 命名空间 System.Data.EntityFramework.Infrastructure 中定义了以下内容:
public DbReferenceEntry<TEntity, TProperty> Reference<TProperty>(Expression<Func<TEntity, TProperty>> navigationProperty) where TProperty : class;
EF7 中定义的这个扩展方法在哪里?或者有没有一种新的方法来显式加载引用?
【问题讨论】:
-
等一个星期(更多...),他们将再次更改所有结构,它将是 Identity v.5,并允许您配置您的身份验证,仅创建 20 个类并覆盖 80 个方法...(啊,别忘了接口,它有一千多个)。最好的是,这一次它会被记录在案。
标签: asp.net-identity asp.net-core