0
Ich habe die folgenden Klassen:kippt hinzufügen mit fließend in einer Eins-zu-Eins-Einstellung - ef codeFirst
User, Address, UserAddress
public class User
{
public ICollection<useraddress> userAddresses { get; set; }
}
public class Address
{
public virtual User User { get; set; }
public virtual Guid UserId { get; set; }
public UserAddress UserAddress { get; set; }
}
public class UserAddress
{
public User User { get; set; }
public Guid UserId { get; set; }
public Address Address { get; set; }
public Guid AddressId { get; set; }
}
Mein Ergebnis soll wie folgt aussehen:
Ich erstelle folgende fließende Konfiguration in UserAddressConfig
:
HasKey(row => new { row.UserId,row.AddressId});
und AdddressConfig
:
HasOptional(row => row.UserAddress).WithRequired(row => row.Address).WillCascadeOnDelete();
aber wenn ich die Datenbank generieren sieht es so aus:
Warum speichern Sie ein 'UserId' in' address' statt in 'User'? Das ergibt für mich keinen Sinn. – wimh
@Wimmel sein Fremdschlüssel –
Ihre Modelle sehen aus. Erstens stimmen sie nicht mit den angelegten Tabellen überein (siehe Adresse). Sie beziehen sich im fließenden Code auf "row.osman". Was ist das? Auf den ersten Blick sieht es so aus, als ob EF Address_Id hinzufügt, weil Ihre Fremdschlüssel nicht korrekt konfiguriert sind. https://msdn.microsoft.com/en-us/data/jj591620.aspx#CompositeKey –