2014-01-06 18 views
6

Wenn ich das Gerüst für Controller erstellen und die Model-Klasse hinzufügen, bekomme ich diese Fehlermeldung "Mehrere Objektsätze pro Typ werden nicht unterstützt".Mehrere Objektgruppen pro Typ werden nicht unterstützt?

ich drei Modellklasse haben:

1.Department.CS

2.Designation.cs

3.CompanyDBContext.cs

Datenbank: Ich habe zwei Tabelle in der Datenbank, 1. Abteilung (deptID, deptName, Beschreibung) 2. Bezeichnung (desgtID, desgName, Beschreibung)

Ziel: - Ich möchte eine Ansichtsseite für diese sce erstellen Nario. Wie dies

Insert Name der Form (TextBox) + Abteilungsbezeichnung (Dropdown-Listenfeld) + Bezeichnung Benennung (Dropdown-Listenfeld)

1.Department.CS

namespace mvcAppraisalSystem.Models 
{ 
    public class Department 
    { 
     [Key] 
     public int deptID { get; set; } 
     public string deptName { get; set; } 
     public string Description { get; set; } 

    } 
} 

2.Designation.cs

namespace mvcAppraisalSystem.Models 
{ 
    public class Designation 
    { 
    [Key] 
    public int desgID { get; set; } 
    public string desgName { get; set; } 
    public string description { get; set; } 
    } 
} 

3.CompanyDBContext.cs

namespace mvcAppraisalSystem.Models 
{ 
    public class CompanyDBContext : DbContext 
    { 
     public CompanyDBContext() : base("CompanyDBContext") 
     { 


     } 
     public DbSet<CompanyDBContext> Departments { get; set; } 

     public DbSet<CompanyDBContext> Designations { get; set; } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
     } 
    } 
} 

Antwort

15

Sie erstellen Ihre Sets als DbSet<CompanyDBContext>. Was Sie wollen, ist DbSet<Department> und DbSet<Designation>.

public DbSet<Department> Departments { get; set; } 

    public DbSet<Designation> Designations { get; set; } 

Dies scheint ziemlich eindeutig ein Tippfehler zu sein, aber der Grund, warum Sie die Fehler sind immer ist, weil die Laufzeit würde nicht wissen, wie mehrere Objektsätze auf demselben Kontext zu füllen, die denselben Elementtyp haben. Dies wäre wie wenn man sagt:

public DbSet<Department> SomeDepartments { get; set; } 
public DbSet<Department> OtherDepartments { get; set; } 

Da (vermutlich) man erwarten würde, etwas zu definieren, was in SomeDepartments sein würde und es gäbe etwas zu definieren, was ist in OtherDepartments und die Laufzeit nicht weiß, diese (und es gibt keine Möglichkeit, es auszudrücken), deshalb erhalten Sie den Fehler.

+0

ok, ich habe Ihren Standpunkt. Mein Ziel ist es, eine Ansichtsseite für beide Modellklassen zu erstellen. Wie ich sagte, ich bin mein? –

+0

Sie stellen zwei verschiedene Fragen. Der Fehler, den Sie gepostet haben, ist auf das Problem zurückzuführen, auf das ich in dieser Antwort hingewiesen habe. –

+0

Ja, Sie sind völlig wright. Vielen Dank für Ihre Hilfe, aber ich möchte Ihre Hilfe für meine volle Frage, die ich in Ziel meiner Frage erwähnt habe. –

Verwandte Themen