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目录中的类稍微修改了数据库设计,然后应用了您的逻辑。再次非常感谢您,先生,我非常感谢您的友好合作。