Ho 3 classi nel mio modello, come potete vedere di seguito.Definizione della relazione molti a molti nel primo schema di entità del codice
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string UserName { get; set; }
public ICollection<MartialArtUserProfile> MartialArtUserProfiles { get; set; }
}
[Table("MartialArt")]
public class MartialArt
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string IconPath { get; set; }
public string ImagePath { get; set; }
public ICollection<MartialArtUserProfile> MartialArtUserProfiles { get; set; }
}
public class MartialArtUserProfile
{
public int UserProfileId { get; set; }
public UserProfile UserProfile { get; set; }
public int MartialArtId { get; set; }
public MartialArt MartialArt { get; set; }
}
E ho una classe di configurazione per la relazione molti a molti, come di seguito:
public class MartialArtUserProfileConfiguration : EntityTypeConfiguration<MartialArtUserProfile>
{
public MartialArtUserProfileConfiguration()
{
HasKey(a => new { a.MartialArtId, a.UserProfileId });
HasRequired(a => a.MartialArt)
.WithMany(s => s.MartialArtUserProfiles)
.HasForeignKey(a => a.MartialArtId)
.WillCascadeOnDelete(false);
HasRequired(a => a.UserProfile)
.WithMany(p => p.MartialArtUserProfiles)
.HasForeignKey(a => a.UserProfileId)
.WillCascadeOnDelete(false);
}
}
Dopo aver definito i miei soggetti una relazione quando si tenta di eseguire Update-Database in Package Manager Console , dice:
Uno o più errori di convalida sono stati rilevati durante la generazione del modello:
\ tSystem.Data.Entity.Edm.EdmEntityType:: EntityType 'MartialArtUserProfile' non ha alcuna chiave definita. Definire la chiave per questo EntityType. \ tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'MartialArtUserProfiles' è basato sul tipo 'MartialArtUserProfile' che non ha chiavi definite.
Cosa sto sbagliando?
Grazie in anticipo,
hai davvero bisogno della classe MartialArtUserProfile o la stai solo usando per creare una relazione molti-a-molti? –
Lo sto usando solo per creare una relazione molti-a-molti. @Sniffer – anilca