2016-03-28 33 views
-2

Bu hatanın ne anlama geldiğini bilmiyorum. Benim uygulama bir olması gereken anlamı MVC4 eskiden çünkü bu hatMVC5 Dizi eşleşen öğe içermiyor

MVC4

UserID = users.Single(s => s.LastName == "Wan").UserID

için MVC5

UserID = users.Single(s => s.LastName == "Wan").Id

var şüphelenen ediyorum Birincil anahtar olarak UserID olan User.cs sınıfı. Kullanıcı kimlikleriyle MVC5'e yükselttikten sonra User.cs (ApplicationUser) 'un IdentityUser'den türetilmesi gerekiyor. IdentityUser Id kullanır.

Sekans uygun elemanı içeren

System.InvalidOperationException: Sequence contains no matching element 
    at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate) 
    at RecreationalServicesTicketingSystem.Migrations.Configuration.Seed(ApplicationDbContext context) in C:\Users\jwan\Documents\Visual Studio 2015\Projects\RecreationalServicesTicketingSystem\RecreationalServicesTicketingSystem\Migrations\Configuration.cs:line 80 
    at System.Data.Entity.Migrations.DbMigrationsConfiguration`1.OnSeed(DbContext context) 
    at System.Data.Entity.Migrations.DbMigrator.SeedDatabase() 
    at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.SeedDatabase() 
    at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId) 
    at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId) 
    at System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration) 
    at System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClassc.<Update>b__b() 
    at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase) 
    at System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase) 
    at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration) 
    at System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.Run() 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force) 
    at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0() 
    at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 
Sequence contains no matching element 

Configuration.cs (Tohum Yöntemi)

internal sealed class Configuration : DbMigrationsConfiguration<RecreationalServicesTicketingSystem.Models.ApplicationDbContext> 
{ 
    public Configuration() 
    { 
     AutomaticMigrationsEnabled = false; 
    } 

    protected override void Seed(ApplicationDbContext context) 
    { 
     var departments = new List<Department> 
     { 
      new Department { DepartmentID = 1, DepartmentName = "IT"}, 
      new Department { DepartmentID = 2, DepartmentName = "Menzit Admin" }, 
      new Department { DepartmentID = 3, DepartmentName = "Human Resources"}, 
      new Department { DepartmentID = 4, DepartmentName = "Mechanics" }, 
      new Department { DepartmentID = 5, DepartmentName = "Directors" }, 
      new Department { DepartmentID = 6, DepartmentName = "Operations"} 

     }; 
     departments.ForEach(s => context.Departments.AddOrUpdate(p => p.DepartmentName, s)); 
     context.SaveChanges(); 


     var depots = new List<Depot> 
     { 
      new Depot { DepotID = 1, DepotName = "Porana"}, 
      new Depot { DepotID = 2, DepotName = "Far North"}, 
      new Depot { DepotID = 3, DepotName = "Horowhenua"}, 
      new Depot { DepotID = 4, DepotName = "Manawatu"}, 
      new Depot { DepotID = 5, DepotName = "Silverdale"}, 
      new Depot { DepotID = 6, DepotName = "Christchurch"}, 

     }; 
     depots.ForEach(s => context.Depots.AddOrUpdate(p => p.DepotName, s)); 
     context.SaveChanges(); 

     var users = new List<ApplicationUser> 
    { 
     //new ApplicationUser { FirstMidName = "Jason", LastName = "Wan", 
     // EnrollmentDate = DateTime.Parse("2016-02-18"), DepartmentID = 1, DepotID = 1,IsAdministrator = true}, 
     new ApplicationUser {UserName = "[email protected]", FirstMidName = "Andy", LastName = "Domagas", 
      EnrollmentDate = DateTime.Parse("2016-02-18"), DepartmentID = 1,DepotID = 1,IsAdministrator = true}, 
     new ApplicationUser {UserName = "[email protected]", FirstMidName = "Denis", LastName = "Djohar", 
      EnrollmentDate = DateTime.Parse("2016-02-18"), DepartmentID = 1 ,DepotID = 1,IsAdministrator = true }, 
     new ApplicationUser {UserName = "[email protected]", FirstMidName = "Christine", LastName = "West", 
      EnrollmentDate = DateTime.Parse("2016-02-18"), DepartmentID = 2, DepotID = 3,IsAdministrator = false}, 

    }; 

     users.ForEach(s => context.Users.AddOrUpdate(p => p.FirstMidName, s)); 
     context.SaveChanges(); 

     users.ForEach(s => context.Users.AddOrUpdate(p => p.LastName, s)); 
     context.SaveChanges(); 



     var categories = new List<Category> 
     { 
      new Category {CategoryID = 0001, CategoryName = "Desktop"}, 
      new Category {CategoryID = 0002, CategoryName = "Mobile"}, 
      new Category {CategoryID = 0003, CategoryName = "Menzits"}, 
      new Category {CategoryID = 0004, CategoryName = "XMPRO"}, 
      new Category {CategoryID = 0005, CategoryName = "Con-X"}, 
      new Category {CategoryID = 0006, CategoryName = "Promapp"}, 
      new Category {CategoryID = 0007, CategoryName = "QGIS"}, 
     }; 
     categories.ForEach(s => context.Categories.AddOrUpdate(p => p.CategoryName, s)); 
     context.SaveChanges(); 

     var tickets = new List<Ticket> <-- Line 80 ERROR 
     { 
      new Ticket { 
       UserID = users.Single(s => s.LastName == "Wan").Id, //UserID 
       CategoryID = categories.Single(c => c.CategoryName == "Con-X").CategoryID, 
       Issue = ("Con-X Login Error"), 
       Priority = Priority.High 
      }, 
      new Ticket { 
       UserID = users.Single(s => s.LastName == "Wan").Id, //UserID 
       CategoryID = categories.Single(c => c.CategoryName == "Desktop").CategoryID, 
       Issue = ("Can't remote access C0123"), 
       Priority = Priority.Med 
      }, 
     }; 


     foreach (Ticket e in tickets) 
     { 
      var ticketInDataBase = context.Tickets.Where(
       s => 
        s.User.Id == e.UserID && //UserID 
        s.Category.CategoryID == e.CategoryID).SingleOrDefault(); 
      if (ticketInDataBase == null) 
      { 
       context.Tickets.Add(e); 
      } 
     } 
     context.SaveChanges(); 

    } 
} 

}

Ticket.cs

public enum Priority 
{ 
    Low, Med, High 
} 
public class Ticket 
{ 
    public int? TicketID { get; set; } 
    [Required(ErrorMessage = "Please enter the description")] 
    public string Issue { get; set; } 
    [Display(Name = "Administrator")] 
    [Required(ErrorMessage = "Please select the Administrator")] 
    public int IssuedTo { get; set; } 
    public int Author { get; set; } 

    [DisplayFormat(NullDisplayText = "No Priority")] 
    public Priority Priority { get; set; } 
    [ForeignKey("CategoryID")] 
    public virtual Category Category { get; set; } 
    public int CategoryID { get; set; } 
    public int UserID { get; set; } 
    [ForeignKey("UserID")] 
    public virtual ApplicationUser User { get; set; } 
} 

ApplicationUser: IdentityUser

public class ApplicationUser 
    : IdentityUser<int, ApplicationUserLogin, 
     ApplicationUserRole, ApplicationUserClaim>, IUser<int> 
    { 
     public async Task<ClaimsIdentity> 
      GenerateUserIdentityAsync(UserManager<ApplicationUser, int> manager) 
     { 
      var userIdentity = await manager 
       .CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
      return userIdentity; 
     } 


     public bool IsAdministrator { get; set; } 
     [StringLength(50, MinimumLength = 1)] 

     public string LastName { get; set; } 
     [StringLength(50, MinimumLength = 1, ErrorMessage = "First name cannot be longer than 50 characters.")] 

     [Column("FirstName")] 
     public string FirstMidName { get; set; } 

     public string FullName 
     { 
      get { return FirstMidName + " " + LastName; } 
     } 
     [DataType(DataType.Date)] 
     [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
     public DateTime EnrollmentDate { get; set; } 
     public int DepartmentID { get; set; } 
     [ForeignKey("DepartmentID")] 
     public virtual Department Department { get; set; } 
     public int DepotID { get; set; } 
     [ForeignKey("DepotID")] 
     public virtual Depot Depot { get; set; } 
     public virtual ICollection<Ticket> Tickets { get; set; } 
    } 

cevap

2

Sadece Wan soyadı ile kullanıcıların tabloda veri yok demektir. Tek 1'den fazla varsa veya hiç mevcut değilse, bir hata atar. Kullanıcı tablosuna "Wan" ekleyen satırı yorumladınız, bu yüzden hatayı alıyorsunuz.

+1

Teşekkür ederiz! Ben bir aptalım! Kullanıcıyı söylediğimi unuttum. – TykiMikk