很多關於我在我的模型3類,你可以看到下面。定義許多在代碼中第一個實體框架
[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; }
}
而且我有一個配置類爲多對多的關係如下圖所示:
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);
}
}
定義我的實體的關係後,當我嘗試在軟件包管理器運行更新,數據庫控制檯它說:
模型生成期間檢測到一個或多個驗證錯誤:
\ tSystem.Data.Entity.Edm.EdmEntityType:的EntityType 'MartialArtUserProfile' 沒有定義鍵。定義此EntityType的關鍵字。 \ tSystem.Data.Entity.Edm.EdmEntitySet:的EntityType:EntitySet的 'MartialArtUserProfiles' 是基於類型 'MartialArtUserProfile' 不具有定義的鍵。
我在做什麼錯?
由於提前,
你真的需要MartialArtUserProfile類還是隻是用它來建立多對多的關係? – 2013-03-10 23:43:31
我只是用它來建立多對多的關係。 @Sniffer – anilca 2013-03-11 09:38:59