Asp.net mvc 4 使用外键进行种子设定

Asp.net mvc 4 使用外键进行种子设定,asp.net-mvc-4,entity-framework-5,Asp.net Mvc 4,Entity Framework 5,我试图完成的是,我试图通过使用迁移来为我的数据库设置种子,但却得到了一个错误b/c其中一个表/类有一个外键,当我尝试为数据设置种子时,我不断得到一个错误。这是第一次这样做,所以任何帮助将非常感谢 以下是我的课程: public class SelectOption { [Key] public int Id { get; set; } public SelectOptionType OptionTypeId { get; set; } [StringLeng

我试图完成的是,我试图通过使用迁移来为我的数据库设置种子,但却得到了一个错误b/c其中一个表/类有一个外键,当我尝试为数据设置种子时,我不断得到一个错误。这是第一次这样做,所以任何帮助将非常感谢

以下是我的课程:

 public class SelectOption
{
    [Key]
    public int Id { get; set; }

    public SelectOptionType OptionTypeId { get; set; }

    [StringLength(100, ErrorMessage = "UserName length exceeded.")]
    public string OptionValue { get; set; }
}

 public class SelectOptionType
{
    [Key]
    public int Id { get; set; }

    [StringLength(100, ErrorMessage = "Name length exceeded.")]
    public string Name { get; set; }
}
以下是我的种子方法:

 protected override void Seed(TestApp.Infrastructure.Context context)
    {

        context.SelectOptionTypes.AddOrUpdate(d => d.Name,
            new SelectOptionType() { Name = "Cleaning/Housekeeping"},
            new SelectOptionType() { Name = "Doors"},
            new SelectOptionType() { Name = "Electrical"},
            new SelectOptionType() { Name = "Fire and Safety"},
            new SelectOptionType() { Name = "Furniture"},
            new SelectOptionType() { Name = "General Repairs"},
            new SelectOptionType() { Name = "Heating/Air Conditioning"},
            new SelectOptionType() { Name = "Key/Card Access"},
            new SelectOptionType() { Name = "Light Bulbs/Lighting"},
            new SelectOptionType() { Name = "Plumbering"},
            new SelectOptionType() { Name = "University Applicances"},
            new SelectOptionType() { Name = "Pest Control"}
            );

        context.SelectOptions.AddOrUpdate(d => d.OptionTypeId,
            new SelectOption() { OptionTypeId = new SelectOptionType() { Name = "Cleaning/Housekeeping" }, OptionValue = "Carpet is wet" }
            );




    }
包管理器控制台中的“我是接收器”错误:
无法创建“TestApplication.Model.SelectOptionType”类型的常量值。在此上下文中仅支持基元类型或枚举类型。

您当前的问题是不能将引用属性之类的内容用作AddOrUpdate的第一个参数。必须向其传递标量字符串、int等属性。。如果您有一个实际的id属性来表示关系,例如OptionTypeId是int类型,然后您的引用属性类似于OptionType,那么您可以使用OptionTypeId作为第一个参数的属性