【发布时间】:2020-12-20 17:39:38
【问题描述】:
在我的 cms 项目中,我创建了一个“RequestGroup”表来满足当前“内容”中的所有需求,例如,我的主页“内容”中有一个小部件“内容”,所以在那种情况下我找不到方式。
目前我正在使用 EF 核心来解决这个问题。但是 EF 核心不足以解决这个问题。所以我尝试了 sql 但我也无法在 sql 上构建解决方案。需要你的帮助,任何想法都可以提供帮助。谢谢你的时间..
public class ContentMain : IdBase
{
[MaxLength(256)]
public string Name { get; set; } = null;
public Guid RequestGroupId { get; set; }
[ForeignKey("DetailPage")]
public Guid? DetailPageId { get; set; } = null;
public virtual VisualizationMain DetailPage { get; set; } = null;
public virtual List<SeoOptionContentMain> SeoOptions { get; set; } = new List<SeoOptionContentMain>();
public string _parameters { get; set; }
[NotMapped]
public Parameters Parameters
{
get
{
try
{
return JsonConvert.DeserializeObject<Parameters>(_parameters);
}
catch
{
return new Parameters();
}
}
set
{
_parameters = JsonConvert.SerializeObject(value);
}
}
[ForeignKey("Category")]
public Guid CategoryId { get; set; }
public virtual CategoryMain Category { get; set; } = null;
public Guid DefinitionId { get; set; }
[NotMapped]
public DefinitionMain Definition { get; set; }
}
public class RequestGroupMain
{
[Key]
public Guid Id { get; set; }
[MaxLength(256)]
[Required]
public string Name { get; set; }
public Guid? RequestGroupMainId { get; set; }
public virtual IList<RequestGroupMain> Childen { get; set; } = new List<RequestGroupMain>();
public virtual List<VisualizationRequestGroup> Visualizations { get; set; } = new List<VisualizationRequestGroup>();
public virtual List<ContentRequestGroup> Contents { get; set; } = new List<ContentRequestGroup>();
public virtual List<CategoryRequestGroup> Categories { get; set; } = new List<CategoryRequestGroup>();
public virtual List<CategoryGroupRequestGroup> CategoryGroups { get; set; } = new List<CategoryGroupRequestGroup>();
}
【问题讨论】:
-
您能描述一下您的确切问题吗?很难理解。
-
当然,当我在请求过程中导入“内容”记录时,我想包含该记录的要求。这些要求可能是“可视化”、“内容”、“类别”、“类别组”,所以我无法弄清楚。
-
context.ContentMain.Include(cm => cm.Visualizatios).Include(cm => cm.Contents).Include(...怎么样?确定你已经尝试过了,但有什么不好的地方? -
我没有尝试,因为“RequestGroup”我的意思是我使用 Guid requestGroupId = context.ContentMain.FirstOrDefault(x=> x.Id.Equals({guid})).RequestGroupId; context.RequestGroupMain.Include(x=>x.RequestGroupMain).FirstOrDefault(x=>x.Id.Equals(requestGroupId));这是我的问题,当我得到我的“RequestGroup”时,它包括“Children”并且“Children”是无限嵌套的“RequestGroup”..我希望我能解释一下。其他一些例子,无限类别技术不适用于 EF 核心..
-
这就是我需要的,非常感谢。因为这种情况我换了系统。但你的解决方案是这个问题的正确答案。
标签: c# sql sql-server entity-framework-core