Ich befolge den EF6-Code zunächst begehbar, und habe versucht, ihn leicht an mein eigenes Projekt anzupassen, aber ich habe ein Problem beim Seeding der Datenbank mit der Initialisierer.EF6 Seeding über Initialisierer und One-to-Many ICollection
Ich habe 2 Klassen erstellt:
Eine Eigenschaft Modus:
namespace MyApp.Models
{
public class Property
{
public int ID { get; set; }
public string PropertyName { get; set; }
public virtual PropertyType PropertyType { get; set; }
}
}
und ein Objekttyp-Modus:
namespace MyApp.Models
{
public class PropertyType
{
public int ID { get; set; }
public string Type { get; set; }
public ICollection<Property> Properties { get; set; }
}
}
Mein Verständnis ist, dass es eine Eins-zu-viele Beziehung zwischen diesen 2. Eine Eigenschaft kann nur 1 Eigenschaftstyp sein, aber viele Eigenschaften können die gleichen Eigenschaftstypen haben?
aber wenn ich versuche, den Kontext zu initialisieren und die Datenbank (mit dem Code unten) Samt, bekomme ich einen Fehler:
public class MyAppInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges<MyAppContext>
{
protected override void Seed(MyAppContext context)
{
var propertytypedata = new List<PropertyType>
{
new PropertyType {ID = 1, Type="Villa" },
new PropertyType {ID = 2, Type="Apartment" }
};
propertytypedata.ForEach(p => context.PropertyType.Add(p));
context.SaveChanges();
var propertydata = new List<Property>
{
new Property {PropertyName="Property 1", PropertyType=1, }
};
propertydata.ForEach(p => context.Property.Add(p));
context.SaveChanges();
}
}
Das Problem ist, dass, wenn ich versuche, den Objekttyp auf einstellen Eigentum ich bin Impfen, sagt es:
Cannot implicitly convert type 'int' to 'MyApp.Models.PropertyType'
'PropertyType = 1,'. PropertyType ist ein komplexes Objekt, keine Ganzzahl. –