【问题标题】:EF Core, querying data with one-to-one relationship based on an enumEF Core,基于枚举以一对一关系查询数据
【发布时间】:2020-05-13 00:05:02
【问题描述】:

所以我有这些表

这里的主表是entry,其中有一个字段typetype 是一个枚举,它可以是textphrase,那么我如何将这些表中的相应数据包含到我的EF 查询中?

如果我使用另一个像details 这样的连接表代替这个枚举,那会更好吗?

【问题讨论】:

    标签: c# mysql database linq entity-framework-core


    【解决方案1】:

    如何将这些表中的相应数据包含到我的 EF 查询中?

    您可以通过这种方式实现:

    var result = from e in context.entries
                 join t in context.texts
                    on e.entryId equals t.entryId into tJ
                 from t in tJ.DefaultIfEmpty()
                 join p in context.phrases
                    on e.entryId equals p.entryId into pJ
                 from p in pJ.DefaultIfEmpty()
                 select new
                 {
                     Entry = e,
                     Text = t,
                     Phrase = p
                 };
    

    在结果集中,每个Entry将根据其类型加载其对应的TextPhrase,其他字段将为空

    如果我使用另一个联结表而不是这个枚举,那会更好吗?比如在条目和不同类型的详细信息之间放置细节

    你根本不需要这个枚举。您可以使用上面的查询在entryId的帮助下加载项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-19
      • 2019-07-25
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      相关资源
      最近更新 更多