控制器没有创建DataContext,FileNotFoundException

时间:2015-12-04 01:24:48

标签: c# asp.net asp.net-mvc entity-framework entity-framework-core

所以我通过创建博客来学习MVC和EF7 Code First。每次我点击发送博客帖子按钮时,我都会收到500内部服务器错误,该按钮应创建一个新的本地数据库并插入帖子。将表单数据发送到控制器的视图工作正常我已经使用断点检查了它,但它在此行中断了

var db = new BlogDataContext();

这是我的BlogDataContext

namespace test.Models
{
    public class BlogDataContext : DbContext
    {
        public DbSet<Post> Post { get; set; }

        public BlogDataContext()
        {
            Database.EnsureCreated();
        } /// This row is marked red on my error page after i press the send blog post button

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);

            var connectionString = @"Server=(LocalDB)\MSSQLLocalDB;Database=test;";
            optionsBuilder.UseSqlServer(connectionString);
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.ForSqlServer().UseIdentity();

        }

    }
}

我的控制器的相关方法

[HttpPost]
        public IActionResult Create(Post post)
        {
            if (!ModelState.IsValid)
            {
                return View(post);
            }

            post.PostedDate = DateTime.Now; // Breakpoint here shows the datetime just fine after pressing the Send button.
            post.Author = User.Identity.Name; // This is null for now

            var db = new BlogDataContext();                 db.Post.Add(post);
            db.SaveChanges();
            return View();

错误页面的图片 Picture of Error page

我还确保MSSQLLocalDB已启动 MSSQLLOCALDB started

1 个答案:

答案 0 :(得分:0)

所以我的依赖项是错误的,我的DNX版本是beta5而我的entityframework.sqlserver是beta4,所以我把它升级到beta5,但在OnConfiguring和DbContextOptionsBuilder上出错了。它无法找到覆盖。

所以我只是将所有内容都恢复到beta4,并且它可以工作,尽管网站在iis express中加载速度较慢。