- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
首先尝试使用 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/
我正在使用基于代码优先 DBContext 的 EF5 设置。 在 DbMigrationsConfiguration.Seed 中,我试图用默认的虚拟数据填充数据库。为完成此任务,我使用了 DbSe
ConcurrentDictionary Pitfall - Are delegates factories from GetOrAdd and AddOrUpdate synchronized?注意
我有一个ConcurrentDictionary。我使用它的 AddOrUpdate 方法来操作它的项目。 我的问题是:是否可以使用 AddOrUpdate 的更新参数来包含 if 语句?例如。我的
我在我的种子方法中使用 AddOrUpdate 来保持我的权限是最新的,但是,在以下代码更新现有角色(而不是创建它)的情况下,我创建的任何新权限都不会添加到角色。我做错了什么? foreach (Ke
下面是我正在尝试做的事情: 我有 users 表和 user_profiles 表,我在 users 中插入 name、email 表和 phone, address, .... etc 在 user
所以我想做的是添加或更新用户,具体取决于该用户是否已存在于我的种子方法中。 我希望条件是如果具有名字和姓氏的用户已经存在但添加 && 似乎不起作用。 foreach (User user in use
我有 2 个类: class RealmUser: Object { @objc dynamic var id: String = "" @objc dynamic var age:
我正在使用下面的这段代码来尝试根据字典对象的键更新字典对象中的值。 public static ConcurrentDictionary UsersViewModel = new Concurrent
假设如下代码: if (myDictionary.ContainsKey(aKey)) myDictionary[aKey] = aValue; else myDictionary.A
我在播种数据时遇到了一些问题,我能够通过一个非常小的应用程序重现该问题。 假设你有这个种子方法: protected override void Seed(JunkContext contex
我正在按照说明进行操作 here试图 mock 我的 DbSet和 DbContext使用 Moq 进行单元测试。 我正在测试的服务如下所示 public class MyItemService {
IDbSetExtensions.AddOrUpdate 旨在帮助编写无论数据库是空的还是已填充的代码都可以正常工作。但是链接对象需要不同的代码。当数据库为空时,对象还没有 ID,您可以通过分配导航属
private readonly ConcurrentDictionary _colorSet; public void BuildColorSet(IList colorNames, st
这可能是一个简单的问题,但我是 Code First 和迁移的新手,所以请多多包涵。我会将示例代码保持在最低限度以显示问题: 我有一个 BaseAuditableEntity,其中包括这个(除其他外,
在当前项目中,我通过两种方式为并发字典中的现有键赋值。 一个。 concurrentDictionary1[key] = value; 和 B. concurrentDictionary2.AddOr
我有一个实体如下: public class PaletteColor { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Ident
这就是我们拥有的: public class Car { public int Id { get; set; } public Engine Engine { get;
我在 C# 中使用并发字典 addOrUpdate。问题是这个字典不是在维护整个字典(列表),而是它只将最后一条记录添加或更新到字典中,并且该记录在字典中多次找到;我在 foreach 循环中遍历了它
这个问题一直是我周末的噩梦...我有一个表,其中 AddOrUpdate 无法正常工作,它一直在添加但从不更新。 我想做的就是当我使用 AddOrUpdate 将新实体添加到表中时,我希望它检查 Ap
我尝试在 ConcurrentDictionary 中使用 AddOrUpdate 方法。 来自本页的“备注”部分 https://msdn.microsoft.com/en-us/library/d
我是一名优秀的程序员,十分优秀!