gpt4 book ai didi

c# - EntityFramework 种子 AddOrUpdate 与外键

转载 作者:太空狗 更新时间:2023-10-29 18:29:18 29 4
gpt4 key购买 nike

首先尝试使用 Entity Framework 和代码在 ASP.NET 网络应用程序中植入数据。我将这段代码放在 Configuration.cs 文件的 Seed() 方法中。现在,我正在处理解决方案的地址方面的问题,我正在尝试将所有州和县加载到系统中。

这是我的状态代码,工作得很好......

context.StateProvinces.AddOrUpdate(
p => p.Abbreviation,
new StateProvince { Abbreviation = "AL", Name = "Alabama" },
new StateProvince { Abbreviation = "AK", Name = "Alaska" },
new StateProvince { Abbreviation = "AZ", Name = "Arizona" },
....
);

如何为 context.Counties 使用 AddOrUpdate() 函数?这就是我的 County 对象的样子。

public class County
{
public int CountyId { get; set; }
public int StateProvinceId { get; set; }
public String Name { get; set; }

[ForeignKey("StateProvinceId")]
public virtual StateProvince StateProvince { get; set; }
}

虽然我可以简单地复制我对州所做的格式,但我们知道县名称在全国范围内重复使用。所以我不能简单地使用 c => c.Name 作为现有的检查。我可以使用名称和 StateProvinceId 字段吗?

最佳答案

为什么不将县添加到州中,而不是反过来呢?

如果你不能这样做,那么你可以修改你的如下:

var al = new StateProvince { Abbreviation = "AL", Name = "Alabama" },
var ak = new StateProvince { Abbreviation = "AK", Name = "Alaska" },
var ar = new StateProvince { Abbreviation = "AZ", Name = "Arizona" },

context.StateProvinces.AddOrUpdate(
p => p.Abbreviation,
al,
ak,
ar
);

context.SaveChanges();

context.Counties.Add(new County() { Name = "Something", StateProvince = al });

// DONT CALL SAVE, Initializer needs something to do or it complains

关于c# - EntityFramework 种子 AddOrUpdate 与外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17755647/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com