私は、組み込みのユーザー認証でASP.NET MVC 5を使用してEntity Framework 6でC#を使用して一対一の関係を作成しようとしています。Fluent APIを使用してテーブルをASP.NET MVC 5、Entity Framework 6でどのようにマップできますか?
私は、Entity Frameworkによって作成されたデフォルトでテーブルと接続を作成できます。しかし、私は流暢なAPIを使用しようとすると....より具体的に私がモデルを使用して空の場合でも、私のデータベースの移行は、パッケージマネージャーコンソールを使用して失敗します。 1対1の関係をどのようにマップできますか?
マイエラー:
//error
//my.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. //Define the key for this EntityType.
//my.Models.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. //Define the key for this EntityType.
//IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type //'IdentityUserLogin' that has no keys defined.
//IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type //'IdentityUserRole' that has no keys defined.
マイコード:
namespace my.Models
{
public class ApplicationUser : IdentityUser
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
public DbSet<EngineeringProject> EngineeringProjects { get; set; }
public DbSet<EngineeringProject> EngineeringDesigns { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new EngineeringDesignMap());
modelBuilder.Configurations.Add(new EngineeringProjectMap());
}
}
}
namespace my.Models.Mapping
{
public class EngineeringProjectMap : EntityTypeConfiguration<EngineeringProject>
{
public EngineeringProjectMap()
{
this.HasRequired(t => t.EngineeringPd)
.WithOptional(t => t.EngineeringProject);
this.HasRequired(t => t.EngineeringProjectCategory)
.WithMany(t => t.EngineeringProjects)
.HasForeignKey(d => d.CategoryId);
}
}
}
_hasキーが定義されていません。あなたには何が分かりませんか? 'IdentityUser'はどのように見えますか? –