RSo*_*erg 8 c# entity-framework ef-code-first
尝试首先使用实体框架和代码在ASP.NET Web应用程序中播种数据.我将此代码放在Seed()Configuration.cs文件的方法中.现在我正在研究解决方案的地址方面,我正在尝试将所有状态和县加载到系统中.
这是我的状态代码,工作得很好......
context.StateProvinces.AddOrUpdate(
p => p.Abbreviation,
new StateProvince { Abbreviation = "AL", Name = "Alabama" },
new StateProvince { Abbreviation = "AK", Name = "Alaska" },
new StateProvince { Abbreviation = "AZ", Name = "Arizona" },
....
);
Run Code Online (Sandbox Code Playgroud)
我该如何使用该AddOrUpdate()功能context.Counties?这就是我的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; }
}
Run Code Online (Sandbox Code Playgroud)
虽然我可以简单地复制我对国家做的格式,但我们知道县名在全国范围内重复使用.所以我不能简单地c => c.Name用作现有支票.我可以使用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
Run Code Online (Sandbox Code Playgroud)