ASP.net MVC 3不会自动创建SQL表(遵循Pluralsight)

时间:2011-07-05 23:07:48

标签: sql-server-2008 asp.net-mvc-3

我正在尝试遵循本指南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开发人员表达的2010就像他使用的那样,我想知道这个问题的唯一原因是什么?因为那时我会安装它。

当我尝试访问应该使用数据库的网站时,我收到此错误

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

执行当前的Web请求。   请查看堆栈跟踪了解更多信息   有关错误的信息和位置   它起源于代码。

Exception Details: System.ArgumentNullException: Value
     

不能为空。       参数名称:key

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 \项目\ FirstWeb \ FirstWeb \查看\库\ 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);
        }

我的galleryDB

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 :(得分:0)

显然数据实体不喜欢这个属性

public HttpPostedFileBase File { get; set; }

因此,从我的模型中删除后,它工作正常