Как добавить выбранные параметры при чтении данных для просмотра? - PullRequest
0 голосов
/ 15 октября 2011

Я делаю веб-приложение MVC 3 в asp.net.Предполагается, что это маленькое сообщество, где пользователи могут отправлять сообщения друг другу (а затем и определенным группам людей).Так что в моей базе данных есть таблицы Users и Messages.Строка в сообщении (сообщение) содержит отправителя и получателя (внешний ключ таблицы «Пользователи»), а также некоторую другую информацию, такую ​​как заголовок, дата отправки и, конечно, текст сообщения.

Когда пользователь заходит на страницу индекса для зарегистрированных пользователей, я хочу показать все сообщения, которые были отправлены этому пользователю или отправлены этим пользователем.Поэтому при чтении сообщений из таблицы «Сообщения» я хочу использовать параметр, идентификатор зарегистрированного пользователя (к которому я могу получить доступ в моем контроллере).Итак, у меня есть параметр, но я не знаю, как его использовать при получении результатов.Я знаю, что должен быть способ сделать это правильно, вместо того, чтобы класть SQL и запускать соединения прямо в коде безобразным способом.

Как вы, возможно, видите сейчас, все сообщения из таблицы будут извлечены и отправлены в представление для отображения его пользователю.

Строка CommunityEntitiesчасть всей сущности Entity Framework, пока точно не знаю, как это работает, хотя я следовал некоторым учебникам:

( Создание-сущности-framework-data-model-model-for-an-an-asp-net-mvc-application )

( 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 (...), но этоКазалось, неправильно, видя, как смысл сделать это правильно и "аккуратно".Это для моего образования, и мои учителя будут разборчивы в структуре приложения.

1 Ответ

1 голос
/ 15 октября 2011

Вам нужно предложение where:

var messages = db.Messages.Where( m => m.SentById == id || m.SentToId == id ).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...