ef6 种子数据与关系

问题描述 投票:0回答:1

我有两个型号:

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

还有另一个

  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; }
  }

现在我想用数据播种数据库并尝试:

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" },
          .......

我的问题是,我不知道如何在

Language
字段

上播种文本
   context.Text.AddOrUpdate(
        new Text[]
        {
          new Text() {Fieldname = "SERVER", Description = "Server", Language = }, 
        }
        );
c# entity-framework
1个回答
2
投票

通过从上下文中现有的语言查询语言,您的代码可能如下所示。

context.Text.AddOrUpdate(
    new Text[]
    {
      new Text() {
        Fieldname = "SERVER",
        Description = "Server", 
        Language = context.Language.FirstOrDefault(l => l.Code == "AX")
        }, 
        //More new Text() here...
    }
);
© www.soinside.com 2019 - 2024. All rights reserved.