-2

In meinem Code erste App habe ich eine Klasse "Kunde" und "Adresse". Meine Client-Klasse hat eine Adressklassenreferenz. zum BeispielWie vermeiden Migration separate Daten in zwei Tabellen?

class Customer{ 
    public string name {get;set;} 
    public Address address {get;set;} 
} 

class Address{ 
    public string street{get;set;} 
    public string number{get;set;} 
} 

, wenn ich diese Daten migrieren habe ich eine Tabelle Kunde mit diesen Spalten:

name 
address_street 
address_number 

Es ist groß. Meine Daten befinden sich nur in einer Tabelle. Es war perfekt für mich!

Allerdings muss ich (aus anderen Gründen) eine ID für die Adresse hinzufügen.

class Address{ 
    [Key] 
    public int EnderecoId { get; set; } 
    public string street{get;set;} 
    public string number{get;set;} 
} 

In diesem Fall splitten die Migration meine Kundentabelle in Kunden- und Adresstabelle.

name 
addressId 

und

street 
number 

Es gibt jede Anmerkung, die dies verhindern könnten? Ich hätte gerne Adressdaten in der Kundentabelle.

+1

nicht sicher, warum Sie die normalisierte Weg nicht gehen: https://msdn.microsoft.com/en-us/data/jj713564 .aspx? f = 255 & MSPPError = -2147217396, aber Sie könnten Ihrer ID [NotMapped] hinzufügen. http://stackoverflow.com/questions/10572442/how-to-ignore-a-property-when-using-entity-framework-code-first –

+0

Was passiert, wenn jemand zwei Adressen hat? Völlig mit @ SteveVreene einverstanden, dass Normalisierung der richtige Weg ist. – krillgar

+0

Jungs Ich verstehe deinen Standpunkt. Bitte beachten Sie, dass dies ein Beispiel ist, um meine Bedürfnisse auszudrücken. Die realen Daten sind keine Adresse. ist sehr viel komplexer. Aber ich schätze Ihre Sorge. –

Antwort

0

Damit der Code dies zuerst erkennt, müssen Sie die Address-Klasse als [ComplexType] markieren. Dann wird Adresse als Teil eines Kundenobjekts verfolgt.

Fügen Sie einfach die [Complex] Anmerkung in die Adressklasse

[ComplexType] 
public class Address 
{ 
    //... 
} 
Verwandte Themen