【发布时间】:2020-05-13 00:05:02
【问题描述】:
这里的主表是entry,其中有一个字段type,type 是一个枚举,它可以是text 或phrase,那么我如何将这些表中的相应数据包含到我的EF 查询中?
如果我使用另一个像details 这样的连接表代替这个枚举,那会更好吗?
【问题讨论】:
标签: c# mysql database linq entity-framework-core
这里的主表是entry,其中有一个字段type,type 是一个枚举,它可以是text 或phrase,那么我如何将这些表中的相应数据包含到我的EF 查询中?
如果我使用另一个像details 这样的连接表代替这个枚举,那会更好吗?
【问题讨论】:
标签: c# mysql database linq entity-framework-core
如何将这些表中的相应数据包含到我的 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将根据其类型加载其对应的Text或Phrase,其他字段将为空
如果我使用另一个联结表而不是这个枚举,那会更好吗?比如在条目和不同类型的详细信息之间放置细节
你根本不需要这个枚举。您可以使用上面的查询在entryId的帮助下加载项目
【讨论】: