我正在尝试使用Identity构建我的第一个.NET应用程序 . 它将是一个基本的Workout应用程序,但我一直无法弄清楚Identity中的Keys和ForeignKeys . 这是我的ExerciseController:
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using WorkoutGenerator.Data.Migrations;
namespace RandomWorkout.Models
{
public class Exercise
{
public string Name { get; set; }
public string Description { get; set; }
public MuscleGroup MuscleGroup { get; set; }
public int MuscleGroupID { get; set; }
[Key]
public int ID { get; set; }
[ForeignKey("ID")]
public virtual ApplicationUser User { get; set; }
public IList<ExerciseWorkout> ExerciseWorkouts { get; set; } = new List<ExerciseWorkout>();
}
}`
然而,当我运行迁移时,我收到错误
它们的实体类型“MigrationOperation”需要定义主键 .
我与其他实体遇到过这个问题,在这种情况下我只需要在我的DbContext类中创建一个新的builder.Entity . 但是,使用MigrationOperation,似乎并非如此 . 我是否完全错误地了解如何使用自动生成的User表加入我的表?谢谢
2 回答
试试这个:
[键]
public int Id {get;组; }
public int UserId {get;组;}
[ForeignKey的( “用户ID”)]
public virtual ApplicationUser User {get;组; }
公共IList <ExerciseWorkout> ExerciseWorkouts {get;组; } = new List <ExerciseWorkout>();
}
为foreignkey添加一个int,并为主键定义一个id属性
为了解决这个问题,最好通过你的Id定义id private