在我正在处理的网站数据库中,我有两个表格,例如:Country& CountryLocale。这两个表包含以下列:
国家/地区:Id,经度,纬度 CountryLocale:Id,CountryId,CountryName,CultureId
我想要的是:
- 当我检索国家/地区时,我希望实体包含:CountryId,CountryName,CultureId,Latitude&经度。
- 当我创建一个新的国家/地区时,将一条记录插入表格国家/地区,将一条记录插入表格CountryLocale
- 当我创建新的国家/地区区域设置时,仅在CountryLocale中创建记录
这可以实现吗? 感谢
答案 0 :(得分:1)
您可以使用实体拆分来部分实现这一点。 CountryLocale
会使用Country
的PK作为其PK。没有CountryLocale
,您无法插入Country
。基本上它是一个单独的实体分成多个表。
modelBuilder.Entity<Country>()
.Map(mc =>
{
mc.Properties(n => new
{
n.Id,
n.Longitude,
n.Latitude
});
mc.ToTable("Country");
})
.Map(mc =>
{
mc.Properties(n => new
{
n.CountryName,
n.CultureId
});
mc.ToTable("CountryLocale");
});
答案 1 :(得分:0)
使用鉴别器(每层次表)
modelBuilder.Entity<CountryBase>()
.Map<Country>(c => c.Requires("Type").HasValue((int)CountryType.Country))
.Map<CountryLocale>(c => c.Requires("Type").HasValue((int)CountryType.CountryLocale));
您可以根据需要定义子实体