Как сделать модель для замены CustomMembershipDB - PullRequest
0 голосов
/ 24 февраля 2012

Я только что следовал руководству MVC по созданию галереи изображений, которая подключает контроллер к подключению к данным, например:

ImageController.cs:

...
private CustomMembershipDB db = new CustomMembershipDB();

    public ViewResult Index()
    {
        return View(db.lm_pics.ToList());
    }
...

Вместо прямого подключенияв CustomMembershipDB я бы хотел использовать свою собственную модель с именем GalleryModel.cs.Я думаю, что это позволило бы мне создать больше функциональности, которая бы обеспечивала прямой доступ к данным.

Я не уверен, как написать эту модель или как ссылаться на нее в контроллере, чтобы она работала так же, какпрямое соединение с базой данных теперь.

В настоящее время мой файл GalleryModel.cs выглядит следующим образом (отредактировано для исправления ошибки):

namespace LMProj_MVC.Models
{
    public class GalleryModel
    {
        public string Picname { get; set; }
        public string Decription{ get; set; }
        public int Userid { get; set; }
    }

    public class PicDBContext : CustomMembershipDB
    {
        public DbSet<GalleryModel> GalleryModel { get; set; }
    }
}

Я хотел бы иметь возможность показать галереюиспользуя список iEnumberable, как я делаю сейчас, в дополнение к созданию других методов.Может кто-нибудь сказать мне, что мне не хватает?

1 Ответ

1 голос
/ 24 февраля 2012

Вам необходимо создать экземпляр объекта вашей модели для каждого из ваших изображений базы данных.Вы можете использовать LINQ, чтобы сделать это, например:

var picSummaries = db.lm_pics.Select(pic => new GalleryModel{
    Picname = pic.Name,
    Description = pic.Description,
    Userid = pic.User.Id
});

Или вы можете использовать a для каждого цикла:

var picSummaries = new List<GalleryModel>();

 foreach (var pic in db.lm_pics)
    {
        picSummaries.Add(new GalleryModel{
            Picname = pic.Name,
            Description = pic.Description,
            Userid = pic.User.Id
        });
    }

, а затем вернуть представление как раньше:

return View(picSummaries);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...