CodeFirst模型-无法生成数据库

hbk

我将尝试使用CodeFirst模型创建数据库。

像下面那样准备代码(来自在线教程)。代码与教程中的代码完全相同:

class Program
{
    static void Main(string[] args)
    {
        using (BlogContext db = new BlogContext())
        {
            Console.Write("Enter a name for a new Blog:");
            var name = Console.ReadLine();

            var blog = new Blog { Name = name };
            Database.SetInitializer<BlogContext>(null);
            db.Blogs.Add(blog);
            db.SaveChanges();

            var query = from b in db.Blogs
                        orderby b.Name
                        select b;

            foreach (var item in query)
            {
                Console.WriteLine(item.Name);
            }

        }
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Name { get; set; }

    public virtual List<Post> Posts { get; set; }

}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public int BlogId { get; set; }
    public virtual Blog Blog { get; set; }
}

public class BlogContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

结果-出现异常

在此处输入图片说明

为解决这个异常发现这里现在可以,可以工作并显示保存的数据,但是在我的Sql Server对象资源管理器中,我看不到任何数据库或表。

在此处输入图片说明

有什么建议吗?我要修理这个吗?


编辑

在此处输入图片说明

因此,正如@Sergiy Berezovskiy提到的那样-我尝试检查dataBase并手动添加dataConnection以显示刚刚创建的dataBase。

在此处输入图片说明

谢尔盖·别列佐夫斯基(Sergey Berezovskiy)

我认为您有两个问题:

  • 您正在寻找错误的数据库。如果未指定连接字符串,则Entity Framework将在本地SQLEXPRESS服务器上创建名称与上下文名称相同的数据库-在您的情况下为SomeNamespace.BlogContext
  • 创建数据库后,您更改了模型。这就是为什么您看到该错误的原因。使用Code First Migrations更新现有数据库,或使用DropCreateDatabaseWhenModelChanges数据库初始化程序重新创建数据库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章