我习惯于使用 SQL 左连接来获取所有可用选项的列表并确定当前选择了哪些项目。我的表结构看起来像这样Table MainRecord -- recordId | mainRecordInfoTable SelectedOptions -- recordId | optionIdTable AvailableOptions -- optionId | optionValue我的查询看起来像这样SELECT optionValue, IIF(optionId IS NULL, 0, 1) AS selectedFROM AvailableOptions AS aLEFT JOIN SelectedOptions AS s ON s.optionId = a.optionId AND a.recordId = 'TheCurrentRecord'我试图用实体框架替换它,所以我需要模型和查询的帮助——它们都需要更正。public class MainRecord{ public int recordId { get; set; } public string mainRecordInfo { get; set; } [ForeignKey("recordId")] public List<SelectedOptions> selectedOptions { get; set; }}public class SelectedOptions{ public int recordId { get; set; } public int optionId { get; set; }}public class AvailableOptions{ public int optionId { get; set; } public string optionValue { get; set; }}询问IQueryable<AvailableOptions> options = from o in context.AvailableOptions select o;我可以获得可用选项的列表,但如何获取列表并知道选择了哪些选项?
2 回答
慕容708150
TA贡献1831条经验 获得超4个赞
不是一个完整的答案,但了解您从模型中获得的导航属性确实很好。这是一个查询,很可能不是您想要的,但可以证明它
from ao in _db.AvailableOptions
where ao.recordId == "TheCurrentRecord" && ao.SelectedOptions.OptionId == 1
select new
MyPoxo {ao.SelectedOptions.Value ?? 0};
因此,您可以浏览由 FK 指定的连接,而不仅仅是让 o 导航。在这个例子中,我假设 AvailableOptions 有一个到 SelectedOptions 的链接。
- 2 回答
- 0 关注
- 175 浏览
添加回答
举报
0/150
提交
取消