Code First 入门

Code First是Entity Framework(EF)中一种流行的开发模式,它允许开发者专注于应用程序的域模型(即类),而由EF根据这些类自动生成数据库结构。以下是Code First的详细入门指南:

1. 安装Entity Framework

首先,你需要在你的项目中安装Entity Framework。这通常可以通过NuGet包管理器来完成。在Visual Studio中,你可以右键点击你的项目 -> 选择“管理NuGet程序包” -> 搜索“EntityFramework” -> 点击“安装”。

2. 创建数据模型

在Code First中,你首先定义你的数据模型,即应用程序中的类。这些类将映射到数据库中的表。例如,你可以创建一个表示博客的类:

public class Blog
{
    public int BlogId { get; set; } // 主键,EF默认会将名为Id或类名+Id的属性作为主键
    public string Name { get; set; }
    // 其他属性...

    // 导航属性,表示与其他实体(如Post)的关系
    public virtual ICollection<Post> Posts { get; set; }
}

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

    // 外键属性,指向Blog
    public int BlogId { get; set; }

    // 导航属性,表示与Blog的关系
    public virtual Blog Blog { get; set; }
}

3. 创建DbContext

DbContext是EF的核心类,它表示一个与数据库的会话。你需要创建一个继承自DbContext的类,并在其中指定你的数据模型。例如:

public class BloggingContext : DbContext
{
    // DbSet<TEntity>表示一个集合,用于查询和保存数据
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    // 可以在这里配置模型(如设置主键、外键、索引等)
    // ...
}

4. 配置数据库连接

你需要在应用程序的配置文件(如App.config或Web.config)中指定数据库连接字符串。EF将使用此连接字符串来连接到数据库。例如:

<connectionStrings>
  <add name="BloggingContext" 
       connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" 
       providerName="System.Data.SqlClient" />
</connectionStrings>

在DbContext中,你可以通过构造函数来指定连接字符串的名称:

public BloggingContext() : base("name=BloggingContext") { }

5. 读写数据

现在你可以使用DbContext来查询和保存数据了。例如:

using (var db = new BloggingContext())
{
    // 创建一个新的博客并保存到数据库
    var blog = new Blog { Name = "My New Blog" };
    db.Blogs.Add(blog);
    db.SaveChanges();

    // 从数据库读取所有博客并显示名称
    var blogs = db.Blogs.ToList();
    foreach (var b in blogs)
    {
        Console.WriteLine(b.Name);
    }
}

6. 迁移数据库

当你的数据模型发生变化时(例如,你添加了一个新的属性或类),你需要更新数据库以反映这些变化。EF提供了迁移功能来帮助你自动执行这些更改。你可以使用NuGet包管理器来添加迁移、更新数据库等。

总结

以上就是Code First的详细入门指南。通过遵循这些步骤,你可以使用Entity Framework的Code First模式来轻松地创建、查询和保存数据。

posted @   iLinCode  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示