ASP.net MVC 3 не создает таблицу SQL автоматически (в соответствии с Pluralsight) - PullRequest
0 голосов
/ 06 июля 2011

Я пытаюсь следовать этому руководству http://www.pluralsight -training.net / microsoft / Players / PSODPlayer.aspx? Author = scott-allen & name = mvc3-building-data-i & mode = live & clip = 0 & course = aspdotnet-mvc3 -intro (часть 3, код стоит первым), но я следовал за ним как раб.

Теперь я установил версию MSDN, так что это Visual Studio Ultimate, а не Web-разработчик Express 2010, как он использует, и мне интересно, что единственная причина этого не работает? Потому что тогда я просто установлю это.

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

    Server Error in '/' Application.
Value cannot be null.
Parameter name: key
Description: An unhandled exception occurred during the

выполнение текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для более информация об ошибке и где он возник в коде.

Exception Details: System.ArgumentNullException: Value

не может быть нулевым. Имя параметра: ключ

Source Error:

Line 15:     
Line 16: 
Line 17: @foreach (var item in Model)
Line 18: {
Line 19:     @item.Title


Source File: c:\Users\Mech0z\Documents\Visual

Студия 2010 \ Projects \ FirstWeb \ FirstWeb \ Views \ Галерея \ Index.cshtml Линия: 17

Stack Trace:

Мой код:

ConnectionString:

<connectionStrings>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
    <add name="GalleryDb"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;initial catalog=GalleryDb"
         providerName="System.Data.SqlClient"/>
  </connectionStrings>

Изображение модели

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace FirstWeb.Models
{
    public class Picture
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public string Path { get; set; }
        public List<Comment> Comments { get; set;}
        public int ConcertYear { get; set; }
        public HttpPostedFileBase File { get; set; }
        public string UploadBy { get; set; }
    }
}

Мой контроллер

namespace FirstWeb.Controllers
{
    public class GalleryController : Controller
    {
        GalleryDb _db = new GalleryDb();
        //
        // GET: /Gallery/

        public ActionResult Index()
        {
            var model = _db.Pictures;
            return View(model);
        }

И моя галерея DB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace FirstWeb.Models
{
    public class GalleryDb : DbContext
    {
        public DbSet<Picture> Pictures { get; set; }
        public DbSet<Comment> Comments { get; set; }

        public DbSet<Picture> GetPictures()
        {
            return Pictures;
        }

        public void AddPicture(Picture model)
        {
            Pictures.Add(new Picture
            {
                Title = model.Title,
                Path = model.Path,
                Comments = new List<Comment>(),
                ConcertYear = model.ConcertYear
            });
        }
    }
}

У меня есть несколько дополнительных методов, которые не работают, что является просто чем-то, когда я использовал временные данные без SQL

Но, как я уже сказал, я не могу подключиться к БД так, как он это делает (набрав \ sqlexpress и набрав GalleryDb в качестве имени), и это выдает мне ошибку

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

1 Ответ

0 голосов
/ 08 июля 2011

Видимо, объекту данных не нравится это свойство

public HttpPostedFileBase File { get; set; }

Так что после удаления этого из моей модели все заработало

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