Asp.net 如何使用LINQ从同一数据库表检索单个网页的两个不同部分的数据?
我正在Asp.net 如何使用LINQ从同一数据库表检索单个网页的两个不同部分的数据?,asp.net,asp.net-mvc,linq,ef-code-first,Asp.net,Asp.net Mvc,Linq,Ef Code First,我正在.NETMVC5中进行一个项目,使用代码优先的方法,我创建了一个数据库表,我想从同一个数据库表中检索索引页或(主页)两个不同部分(数据库的类别)中的一些特定记录 我已经创建了下面的控制器,它可以很好地用于名为“最近事件”的部分之一,但当我尝试检索主页第二部分的一些记录时,我感到困惑,假设使用相同的控制器将其命名为“特色事件” 起初,我只是希望这两个部分的逻辑都能正常工作,但如果有专家正在阅读我的文章,那么请告诉我如何在特色事件部分检索特定数量的记录,正如您所知,我在最近的事件中检索了8条记
.NETMVC5
中进行一个项目,使用代码优先的方法,我创建了一个数据库表,我想从同一个数据库表中检索索引页或(主页)两个不同部分(数据库的类别)中的一些特定记录
我已经创建了下面的控制器,它可以很好地用于名为“最近事件”的部分之一,但当我尝试检索主页第二部分的一些记录时,我感到困惑,假设使用相同的控制器将其命名为“特色事件”
起初,我只是希望这两个部分的逻辑都能正常工作,但如果有专家正在阅读我的文章,那么请告诉我如何在特色事件部分检索特定数量的记录,正如您所知,我在最近的事件中检索了8条记录,如果我想在特色事件部分检索12条记录,该怎么办
这是控制器:
public ActionResult Index()
{
var result = (from i in _context.consult
orderby i.date_of_event descending
where i.category == "recent_events"
select i).Take(8);
return View(result);
}
仅作进一步澄清:在视图中,我使用foreach
循环检索数据:
例如,它如下所示:
@model Ienumurable <Example.Models.consultation>
@model Ienumurable
最近事件部分代码
@foreach (var recent in Model)
{
if (@recent.category == "recent_events")
{
<p>@recent.date</p>
<p>@recent.details</p>
}
}
@foreach (var featured in Model)
{
if (@featured.category == "featured_events")
{
<p>@featured.date</p>
<p>@featured.details</p>
}
}
@foreach(模型中最近的变量)
{
如果(@recent.category==“最近的事件”)
{
@最近的日期
@最新资料
}
}
特色活动部分代码
@foreach (var recent in Model)
{
if (@recent.category == "recent_events")
{
<p>@recent.date</p>
<p>@recent.details</p>
}
}
@foreach (var featured in Model)
{
if (@featured.category == "featured_events")
{
<p>@featured.date</p>
<p>@featured.details</p>
}
}
@foreach(模型中的变量)
{
如果(@featured.category==“featured\u事件”)
{
@日期
@特色.细节
}
}
如果有人能在这方面帮助我,我将非常高兴 假设您有两个要返回的项目列表,创建一个新类,将这两个列表作为公共属性保存,在控制器中填充这两个列表并返回新类 现在,您的模型将同时包含这两个元素,您可以使用Razor对这两个元素进行迭代 例如:
public class EventsDataModel
{
public List<Event> RecentEvents { get;set; }
public List<Event> FeaturedEvents { get;set; }
public EventsDataModel()
{
RecentEvents = new List<Event>();
FeaturedEvents = new List<Event>();
}
}
亲爱的Andrei Dragotoniu,我非常感谢您的回复。但是使用两个列表意味着有两个不同的类,这进一步意味着在数据库中有两个单独的表。这将在数据输入阶段产生冗余,因为两个部分共享相似的数据,但只是时间和流行程度不同。这意味着,如果日期是最近的,它将转到最近的部分,如果数据库表中的featured设置为yes,那么它将转到featured部分,在这两个部分中,标题和完整描述等其他数据将保持不变。由于我花了很长时间研究这个逻辑,我想我在LINQ部分遗漏了一些东西,可以通过详细说明LINQ查询来修复它,你认为呢?无论如何,再次感谢您的友好回复。无论如何,今天我能够使用您的逻辑解决问题,我通过Models目录中的类稍微修改了数据库设计,然后应用了您的逻辑。再次非常感谢您,先生,我非常感谢您的友好合作。