Fluent API 与静态 table 的一对多关系
Fluent API One to Many relation with static table
我需要帮助。
我有三个静态 table(国家、地区和城市词典)。我在我的 Initilizer class 中设置了这个 tables。
我需要与我自己的用户 table 创建一对多关系,而无需在 Fluent API.
的词典 table 中创建 Foregion 键
词典表(国家、地区和城市):
我的用户table:
public class UserWorker
{
public UserWorker()
{
Countries = new List<DCountry>();
Regions = new List<DRegion>();
Cities = new List<DCity>();
Professions = new List<DProfession>();
}
public int UserWorkerId { get; set; }
public virtual ICollection<DCountry> Countries { get; set; }
public virtual ICollection<DRegion> Regions { get; set; }
public virtual ICollection<DCity> Cities { get; set; }
public virtual ICollection<DProfession> Professions { get; set; }
}
如何在没有 UserWorker_UserWorkerId 的情况下添加关系?
P.S:我还有另外两个 table 需要通过 Fluent API.
的相同关系一对多连接
我不明白如何在不在我的静态 table 中创建虚拟 foregion 密钥的情况下将对象字典列表添加到我自己的 table。
如果一个用户可以有多个城市,同一个城市可以分配给多个用户,这是many-to-many关系。
您可以在模型构建器中进行如下配置:
ModelBuilder.Entity<UserWorker>()
.HasMany(u => u.Cities)
.WithMany()
.Map(x => {
x.MapLeftKey("UserWorkerId");
x.MapRightKey("CityId");
x.ToTable("UserWorkerToCityMap");
});
EF 将为此关系创建一个额外的 table UserWorkerToCityMap
,该关系有两列外键引用 UserWorkerId
和 CityId
。不会向 DCity 添加额外的外键列。
我需要帮助。 我有三个静态 table(国家、地区和城市词典)。我在我的 Initilizer class 中设置了这个 tables。 我需要与我自己的用户 table 创建一对多关系,而无需在 Fluent API.
的词典 table 中创建 Foregion 键词典表(国家、地区和城市):
我的用户table:
public class UserWorker
{
public UserWorker()
{
Countries = new List<DCountry>();
Regions = new List<DRegion>();
Cities = new List<DCity>();
Professions = new List<DProfession>();
}
public int UserWorkerId { get; set; }
public virtual ICollection<DCountry> Countries { get; set; }
public virtual ICollection<DRegion> Regions { get; set; }
public virtual ICollection<DCity> Cities { get; set; }
public virtual ICollection<DProfession> Professions { get; set; }
}
如何在没有 UserWorker_UserWorkerId 的情况下添加关系?
P.S:我还有另外两个 table 需要通过 Fluent API.
的相同关系一对多连接我不明白如何在不在我的静态 table 中创建虚拟 foregion 密钥的情况下将对象字典列表添加到我自己的 table。
如果一个用户可以有多个城市,同一个城市可以分配给多个用户,这是many-to-many关系。
您可以在模型构建器中进行如下配置:
ModelBuilder.Entity<UserWorker>()
.HasMany(u => u.Cities)
.WithMany()
.Map(x => {
x.MapLeftKey("UserWorkerId");
x.MapRightKey("CityId");
x.ToTable("UserWorkerToCityMap");
});
EF 将为此关系创建一个额外的 table UserWorkerToCityMap
,该关系有两列外键引用 UserWorkerId
和 CityId
。不会向 DCity 添加额外的外键列。