繁体   English   中英

在读取视图数据时如何添加选择参数?

[英]How do I add select parameters when reading data for the View?

我正在asp.net中制作MVC 3 Web应用程序。 它应该像一个小社区,用户可以在此相互发送消息(以后也可以发送给指定的人群)。 因此在我的数据库中,我有表Users和Messages。 消息中的一行(一条消息)包含发送者和接收者(Users表的外键)以及一些其他信息,例如标题,发送日期,当然还有消息文本。

当用户进入已登录用户的索引页面时,我要显示已发送给该用户或该用户发送的所有消息。 因此,当从“消息”表中读取消息时,我想使用一个参数,即已登录用户的ID(我可以在控制器中访问该ID)。 所以我有参数,但是在获取结果时我不知道如何使用它。 我知道必须有一种正确执行此操作的方法,而不是放入一堆sql并以丑陋的方式在代码中正确启动连接。

如您现在可能看到的,表中的所有消息都将被检索并发送到视图以显示给用户。

尽管我一直在关注一些教程,但CommunityEntities行是整个Entity Framework的一部分,虽然不能确切确定它的工作原理,但是仍然不确定:

为一个ASP.NET MVC应用程序创建一个实体框架数据模型

Mvc-music-store-part-1 )。

UserController.cs:

...

CommunityEntities db = new CommunityEntities();

public ActionResult Index()
    {
        var messages = db.Messages.ToList();
        return View(messages);
    }

...

CommunityEntities.cs:

public class CommunityEntities : DbContext
{
    public DbSet<User> Users { get; set; }        
    public DbSet<Message> Messages { get; set; }
}

编辑:我确实使用db.Database.SqlQuery(...)尝试了该操作,但这似乎是错误的,因为关键是要正确并“整洁”地执行此操作。 这是为了我的教育,我的老师会对应用程序的结构保持谨慎。

您需要一个where子句:

var messages = db.Messages.Where( m => m.SentById == id || m.SentToId == id ).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM