c# - 多语言支持 EF Core 值表
问题描述
我在使用 EF Core ORM 映射我的关系模式时遇到了问题,我迫切地寻求帮助。我有一张Event
桌子(int id, text name, int typeId)
和EventTypeLocale
桌子(int id, text locale, text name)
。
为了解释为什么我不能重组我的数据库模式以附加EventId
到EventTypeLocale
表 - 有一个示例内容EventTypeLocale
:
(1,'en', 'External event')
(1,'de','Externe Veranstaltung')
(2,'en', 'Internal event ')
(2,'de','Internes Ereignis')
并且Event
表有关于会话 + 其类型的信息 -typeId
应该参考EventTypeLocale
FK。但是,正如您从示例数据中看到的那样 - 一个 id 将有多个数据库行(因为有一个复合键id + locale
)。我想将所有位置中的类型加载到EventTypeLocales
集合中。
我有两节课
public class Event
{
public int Id { get; set; }
public string Name { get; set; }
public int TypeId { get; set; }
public List<EventTypeLocale> EventTypeLocales { get; set; }
}
public class EventTypeLocale
{
public int Id { get; set; }
public string Locale { get; set; }
public string Name { get; set; }
}
复杂的部分是在Context : DbContext
类中配置它。你能帮我配置这样的关系吗?
我发布了一个类似的问题,基本上代表了更困难的情况下的相同问题。不幸的是,提议的解决方案仅适用于获取数据,但是当我尝试Event
用另一个更新对象时TypeId
- EF 不允许这样做(因为在提议的解决方案TypeId
中配置为 PrincipleKey。因此,上一篇文章中接受的解决方案没有在这种情况下工作。
解决方案
推荐阅读
- java - NoClassDefFoundError on Executable Jar with code using External Jar libs
- ios - 我想从 JSON 文件中获取特定数据
- javascript - 获取数组Javascript中数组的reduce
- python - 有没有办法在我用 tkinter 用 python 编写的数独代码中增加更多的难度级别
- javascript - 为我的背景颜色创建一个本地存储
- mysql - 带有 HTML 文本编辑器的 Spring Boot
- julia - 如何使用 |> 并正确地模式匹配元组输入?
- deep-learning - 如何在pytorch中实现低维嵌入层
- javascript - 条带支付成功后执行JS函数
- orange - 为什么我无法使用 Save Data 或 Save Model 进行保存?