Я пытаюсь интегрировать ASP Identity в свой собственный DbContext, но мне не повезло. То, что я пытаюсь достичь, заключается в том, что каждая сделка, отправленная, будет назначена пользователю.
DbContext:
public class ShareDealsContext : IdentityDbContext<ApplicationUser>
{
public ShareDealsContext() : base("name=ShareDealsContext")
{
}
// Other DbSets
public DbSet<Deals> Deals { get; set; }
}
Модель предложений:
[ForeignKey("User")]
public virtual string UserId { get; set; }
public virtual ApplicationUser User { get; set; }
Модели идентичности:
public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
return userIdentity;
}
public virtual ICollection<Deals> Deals { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext() : base("DefaultContext", throwIfV1Schema: false) { }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Я попытался заменить "DefaultContext" на "ShareDealsContext" внутри ApplicationDbContext, но все равно не работает. Я хочу полностью удалить DefaultContext и просто использовать собственный ShareDealsContext. Любые идеи о том, чего я упускаю? спасибо
Не могли бы вы заменить DefaultContext именем строки подключения из web.config?
public ApplicationDbContext() : base("CONNECTION_STRING_NAME", throwIfV1Schema: false)
Например,
Web.config