Я добавил таблицу под Identity: Запрос, я это протестировал и оно функционировало хорошо. Потом я создал драйвер с совещаниями автоматического способа используя EF и сейчас выходит сообщение ошибки:
Не допускаются несколько наборов объектов типом. Наборы объектов 'ApplicationUsers' и 'Users' могут содержать инстанции типа 'PruebaHG.Models. ApplicationUser'. Описание: Исключение, не контролируемое, выполнив Веб настоящий запрос. Проверьте следование батарейки, чтобы получать больше информации относительно ошибки, и где он породился в коде.
Детали исключения: System. InvalidOperationException: Не допускаются несколько наборов объектов типом. Наборы объектов 'ApplicationUsers' и 'Users' могут содержать инстанции типа 'PruebaHG.Models. ApplicationUser'.
Ошибка исходного кода:
Произвелось исключение, не контролируемое в течение выполнения Веб настоящего запроса. Информация об источнике и расположении исключения они могут идентифицироваться используя исключение следования следующей батарейки.
Следование батарейки:
[InvalidOperationException: No se admiten varios conjuntos de objetos por tipo. Los conjuntos de objetos 'ApplicationUsers' y 'Users' pueden contener instancias de tipo 'PruebaHG.Models.ApplicationUser'.]
System.Data.Entity.Internal.DbSetDiscoveryService.RegisterSets(DbModelBuilder modelBuilder) +456
System.Data.Entity.Internal.LazyInternalContext.CreateModelBuilder() +360
System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) +128
System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) +123
System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +616
System.Data.Entity.Internal.InternalContext.Initialize() +21
System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +15
System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +53
System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() +16
System.Data.Entity.Internal.Linq.InternalSet`1.FindAsync(CancellationToken cancellationToken, Object[] keyValues) +53
System.Data.Entity.DbSet`1.FindAsync(CancellationToken cancellationToken, Object[] keyValues) +35
System.Data.Entity.DbSet`1.FindAsync(Object[] keyValues) +26
Microsoft.AspNet.Identity.EntityFramework.EntityStore`1.GetByIdAsync(Object id) +49
Microsoft.AspNet.Identity.EntityFramework.<GetUserAggregateAsync>d__67.MoveNext() +136
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
Microsoft.AspNet.Identity.CultureAwaiter`1.GetResult() +59
Microsoft.AspNet.Identity.Owin.<<OnValidateIdentity>b__0>d.MoveNext() +789
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) +25
Microsoft.Owin.Security.Cookies.<AuthenticateCoreAsync>d__2.MoveNext() +2200
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
Microsoft.Owin.Security.Infrastructure.<BaseInitializeAsync>d__0.MoveNext() +571
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
Microsoft.Owin.Security.Infrastructure.<Invoke>d__0.MoveNext() +255
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
Microsoft.AspNet.Identity.Owin.<Invoke>d__5.MoveNext() +383
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
Microsoft.AspNet.Identity.Owin.<Invoke>d__5.MoveNext() +383
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
Microsoft.AspNet.Identity.Owin.<Invoke>d__5.MoveNext() +383
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.<RunApp>d__5.MoveNext() +182
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.<DoFinalWork>d__2.MoveNext() +180
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult ar) +69
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult ar) +64
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +380
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +48
Я искал где-то здесь, но мне не может казаться что-то дублированным.
public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Tenga en cuenta que el valor de authenticationType debe coincidir con el definido en CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Agregar aquí notificaciones personalizadas de usuario
return userIdentity;
}
public virtual List<Solicitud> Solicitudes { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Solicitud>()
.HasRequired(x => x.Usuario)
.WithMany(x => x.Solicitudes)
.HasForeignKey(x => x.Id)
.WillCascadeOnDelete(true);
base.OnModelCreating(modelBuilder);
}
public System.Data.Entity.DbSet<PruebaHG.Models.Solicitud> Solicituds { get; set; }
public System.Data.Entity.DbSet<PruebaHG.Models.ApplicationUser> ApplicationUsers { get; set; }
}
Класс Запрос
public class Solicitud
{
[Key]
public int IdSolicitud { get; set; }
public DateTime FechaYHora { get; set; }
public String Tipo { get; set; }
public bool AprobadoPorRH { get; set; }
public bool AprobadoPorJefe { get; set; }
public String Id { get; set; }
public virtual ApplicationUser Usuario { get; set; }
}
Эта ошибка я ocurriГі despuГ©s использования scaffolding
с организацией ApplicationUser
, этим благодаря тому, что agregГі следующая линия в DbContext
в то время как IdentityDbContext
уже осуществляет ее:
public System.Data.Entity.DbSet<PruebaHG.Models.ApplicationUser> ApplicationUsers { get; set; }
, Чтобы решать ошибку, должно быть, удаляет линию, добавленную автоматически scaffold
Кредитов: denifer santiago fernandez