Tôi có 3 lớp trong mô hình của tôi như bạn có thể thấy bên dưới.Xác định nhiều mối quan hệ trong khung thực thể mã đầu tiên
[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; }
}
Và tôi có một lớp cấu hình cho nhiều mối quan hệ như sau:
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);
}
}
Sau khi xác định các đối tượng của tôi một mối quan hệ khi tôi cố gắng chạy Update-Cơ sở dữ liệu trong Package Manager Console , nó nói:
Đã phát hiện một hoặc nhiều lỗi xác thực trong quá trình tạo mô hình:
\ tSystem.Data.Entity.Edm.EdmEntityType:: EntityType 'MartialArtUserProfile' không có khóa được xác định. Xác định khóa cho EntityType này. \ tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'MartialArtUserProfiles' dựa trên loại 'MartialArtUserProfile' không có khóa được xác định.
Tôi đang làm gì sai?
Cảm ơn trước,
bạn có thực sự cần lớp MartialArtUserProfile hoặc bạn chỉ sử dụng nó để tạo mối quan hệ nhiều-nhiều? –
Tôi chỉ sử dụng nó để tạo mối quan hệ nhiều-nhiều. @Sniffer – anilca