【问题标题】:ef6 seed data with relationship具有关系的 ef6 种子数据
【发布时间】:2016-08-02 07:13:47
【问题描述】:

我有两个模型:

  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 = }, 
        }
        );

【问题讨论】:

  • 您可以在上下文中查询先前添加的语言,就像Language = context.Language.Where(....)

标签: c# entity-framework


【解决方案1】:

通过从上下文中现有的语言中查询一种语言,您的代码可能看起来像这样。

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

【讨论】:

    猜你喜欢
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2019-08-31
    • 2013-03-22
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多