gpt4 book ai didi

c# - Code First 模型 - 可以生成数据库

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:41 24 4
gpt4 key购买 nike

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

准备如下代码(来自 online tutorial )。代码与教程中的完全一样:

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; }
}

结果 - 出现异常

enter image description here

已找到此异常的解决方案 here .现在好了,开始工作并显示保存的数据,但是在我的 Sql Server 对象资源管理器中我看不到任何数据库或表。

enter image description here

有什么建议吗?我必须做什么才能修复此问题?


编辑

enter image description here

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

enter image description here

最佳答案

我认为你有两个问题:

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

关于c# - Code First 模型 - 可以生成数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com