C# 基于适合同一区域的内容拆分内容
我现在的问题是。也就是说,它不会进入另一个表,即与CourseData放在一起的courseCategory 因此,我想获得已建立在单一类别价值上的课程 比如说,在处理我的分类内容时,该课程在其他课程中没有发现任何内容 例如,正如您在这里的图片中所看到的,我现在只有几门课,但是当每门课都添加了一个类别时。在其他任何一个上都找不到。那么,搜索单个类别应该占主导地位 分类中的我的表格 我的数据库概述 因此,我要澄清的问题是,它基本上没有解决SearchWord中的单词。只要有一个或多个词合适,它就必须解决它C# 基于适合同一区域的内容拆分内容,c#,C#,我现在的问题是。也就是说,它不会进入另一个表,即与CourseData放在一起的courseCategory 因此,我想获得已建立在单一类别价值上的课程 比如说,在处理我的分类内容时,该课程在其他课程中没有发现任何内容 例如,正如您在这里的图片中所看到的,我现在只有几门课,但是当每门课都添加了一个类别时。在其他任何一个上都找不到。那么,搜索单个类别应该占主导地位 分类中的我的表格 我的数据库概述 因此,我要澄清的问题是,它基本上没有解决SearchWord中的单词。只要有一个或多个词合适,它
public List<CourseData> GetCourseList(string text)//Undervisning
{
List<CourseData> list = new List<CourseData>();
var dataContent = _dbContext.CourseDataModul
.Where(r => r.Title.Contains(text)
|| r.Deck.Contains(text)
|| r.CourseDataContent.FirstOrDefault(x => x.Title.Contains(text)).Title.Contains(text)
|| r.CourseDataContent.FirstOrDefault(x => x.Deck.Contains(text)).Deck.Contains(text)
|| r.CourseDataContent.FirstOrDefault(x => x.ContentValue.Contains(text)).ContentValue.Contains(text))
.ToList();
foreach (var item in dataContent)
{
list = _dbContext.CourseData
.Where(r => r.Id == item.CourseDataId && r.OpenNow || r.Title.Contains(text) || r.Deck.Contains(text) ||
r.CourseCategori.SearchWord
.Split(new [] {",", ", ", " "}, StringSplitOptions.None) //online undervisning,undervisning,computer undervisning
.Contains(text)).ToList();//undervisning
}
return list;
}
public List GetCourseList(字符串文本)//
{
列表=新列表();
var dataContent=_dbContext.CourseDataModul
.Where(r=>r.Title.Contains(text)
||r.Deck.Contains(文本)
||r.CourseDataContent.FirstOrDefault(x=>x.Title.Contains(text)).Title.Contains(text)
||r.CourseDataContent.FirstOrDefault(x=>x.Deck.Contains(text)).Deck.Contains(text)
||r.CourseDataContent.FirstOrDefault(x=>x.ContentValue.Contains(文本)).ContentValue.Contains(文本))
.ToList();
foreach(dataContent中的var项)
{
列表=_dbContext.CourseData
.Where(r=>r.Id==item.coursedaitaid&&r.OpenNow | | | r.Title.Contains(text)| | | r.Deck.Contains(text)||
r、 CourseCategori.SearchWord
.Split(新[]{“,”,“,”,“,”},StringSplitOptions.None)//在线欠压,欠压,计算机欠压
.Contains(text)).ToList();//欠压
}
退货清单;
}
您可以在“代码拆分”中看到,我对一些代码进行了注释,这些代码应该说明它在数据库中的外观,例如,它应该仅基于“欠可视性”。正如我所说,欢迎更多地发言
我在这里看到了这些链接:
更新。
在我更新我的代码并这样做之后。然后会有一个错误,可以在这里看到
public List<CourseData> GetCourseList(string text)//Undervisning
{
List<CourseData> list = new List<CourseData>();
var dataContent = _dbContext.CourseDataModul
.Where(r => r.Title.Contains(text)
|| r.Deck.Contains(text)
|| r.CourseDataContent.Any(x => x.Title.Contains(text))
|| r.CourseDataContent.Any(x => x.Deck.Contains(text))
|| r.CourseDataContent.Any(x => x.ContentValue.Contains(text)))
.ToList();
if (dataContent.Count > 0)
{
foreach (var item in dataContent)
{
list = _dbContext.CourseData
.Where(r => r.Id == item.CourseDataId &&
r.OpenNow ||
r.Title.Contains(text) ||
r.Deck.Contains(text) ||
r.CourseCategori.SearchWord
.Split(new[] {",", ", ", "/"},
StringSplitOptions
.RemoveEmptyEntries) //online undervisning,undervisning,computer undervisning
.Any(x => x.Contains(text))).ToList(); //undervisning
}
}
else
{
list = _dbContext.CourseData.Where(r => r.OpenNow &&
r.Title.Contains(text) ||
r.Deck.Contains(text) ||
r.Text.Contains(text) ||
r.CourseCategori.SearchWord
.Split(new[] {",", ", ", "/"},
StringSplitOptions
.RemoveEmptyEntries) //online undervisning,undervisning,computer undervisning
.Any(x => x.Contains(text))).ToList();
}
return list;
}
public List GetCourseList(字符串文本)//
{
列表=新列表();
var dataContent=_dbContext.CourseDataModul
.Where(r=>r.Title.Contains(text)
||r.Deck.Contains(文本)
||任意(x=>x.Title.Contains(text))
||任意(x=>x.Deck.Contains(text))
||任意(x=>x.ContentValue.Contains(text)))
.ToList();
如果(dataContent.Count>0)
{
foreach(dataContent中的var项)
{
列表=_dbContext.CourseData
其中(r=>r.Id==item.CourseDataId&&
r、 OpenNow | |
r、 标题.包含(文本)||
r、 Deck.Contains(文本)||
r、 CourseCategori.SearchWord
.Split(新[]{,“,”,“,”,“/”},
StringSplitOptions
.removeMptyEntries)//在线欠售,欠售,计算机欠售
.Any(x=>x.Contains(text))).ToList();//欠压
}
}
其他的
{
list=\u dbContext.CourseData.Where(r=>r.OpenNow&&
r、 标题.包含(文本)||
r、 Deck.Contains(文本)||
r、 Text.Contains(文本)||
r、 CourseCategori.SearchWord
.Split(新[]{,“,”,“,”,“/”},
StringSplitOptions
.removeMptyEntries)//在线欠售,欠售,计算机欠售
.Any(x=>x.Contains(text))).ToList();
}
退货清单;
}
此处的错误代码:
LINQ表达式“DbSet.Join”(外部:
DbSet,内部:c=>EF.Property(c,
“CourseCategorid”),outerKeySelector:c0=>
EF.Property(c0,“Id”),innerKeySelector:(o,i)=>new
透明标识符(外部=o,内部=
其中(c=>c.Outer.OpenNow&&c.Outer.Title.Contains(\uuuu text\u0)
||c.Outer.Deck.Contains(_text_0)| c.Outer.text.Contains(_text_0)
||Split(分隔符:字符串[]{“,”,“,”,“,”,“/”,},
选项:RemoveEmptyEntries)。任何(x=>x.Contains(uu text_u0)))都可以
不能翻译。或者将查询重写为可以
转换,或通过插入
调用AsEnumerable()、AsAsAsAsyncEnumerable()、ToList()或
ToListSync()。寻找
更多信息
请查看关于发布代码和问题的指南,其中包含再现问题所需的所有数据,代码最少。还要确保代码不会尖叫“NRE here”-就像访问
FirstOrDefault
的结果而不检查空值一样。(旁注r.CourseDataContent.FirstOrDefault(x=>x.Title.Contains(text)).Title.Contains(text)
非常混乱-可能您正在寻找Any
instaeadFirstOrDefault
?)EF不理解Split
。你没有得到一个错误吗?是的,我得到一个错误后,我更新的代码相比,前面所说的@CodingYoshio这就是我在更新后的代码中所展示的想法吗@阿列克谢列文科夫