简体   繁体   English

具有关系的ef6种子数据

[英]ef6 seed data with relationship

I have two models: 我有两个模型:

  public class Language
  {
    [Key]
    [Required]
    [MaxLength(2), MinLength(2)]
    public string Code { get; set; }
    [Required]
    public string Country { get; set; }
  }

and the other one 另一个

  public class Text
  {

    private string _fieldname;

    public int Id { get; set; }
    [Required]
    public virtual Language Language { get; set; }

    [Required]
    [MinLength(1)]
    [MaxLength(30)]
    public string Fieldname {
      get { return _fieldname; }
      set { _fieldname = value.ToUpper(); }
    }

    [MaxLength(50)]
    [MinLength(1)]
    [Required]
    public string Description { get; set; }
  }

Now I want to seed the db with data and tried: 现在我想为数据库添加数据并尝试:

context.Language.AddOrUpdate(
        new Language[]
        {
          new Language() { Code = "AF", Country = "Afghanistan" },
          new Language() { Code = "AX", Country = "Aland Islands" },
          new Language() { Code = "AL", Country = "Albania" },
          new Language() { Code = "DZ", Country = "Algeria" },
          new Language() { Code = "AS", Country = "American Samoa" },
          new Language() { Code = "AD", Country = "Andorra" },
          new Language() { Code = "AO", Country = "Angola" },
          new Language() { Code = "AI", Country = "Anguilla" },
          new Language() { Code = "AQ", Country = "Antarctica" },
          new Language() { Code = "AG", Country = "Antigua and Barbuda" },
          new Language() { Code = "AR", Country = "Argentina" },
          new Language() { Code = "AM", Country = "Armenia" },
          .......

My problem is, I do not know how to seed Text on Language field 我的问题是,我不知道如何在“ Language字段中播种文本

   context.Text.AddOrUpdate(
        new Text[]
        {
          new Text() {Fieldname = "SERVER", Description = "Server", Language = }, 
        }
        );

Your code could look like this by querying for a language from the existing in the context. 通过从上下文中现有的语言中查询语言,您的代码可能看起来像这样。

context.Text.AddOrUpdate(
    new Text[]
    {
      new Text() {
        Fieldname = "SERVER",
        Description = "Server", 
        Language = context.Language.Where(l => l.Code == "AX").FirstOrDefault()
        }, 
        //More new Text() here...
    }
);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM