下面我将为您详细讲解“Entity Framework代码优先(Code First)模式”的完整攻略。
什么是Entity Framework代码优先(Code First)模式
Entity Framework(Code First)是一种ORM(对象关系映射)工具,它允许开发人员使用纯粹的代码来定义领域模型和关系,而无需在数据库中手动创建表和字段。代码优先模式使数据库架构的配置变得非常简单,并且支持不同的数据库提供程序,例如MS SQL Server,MySQL和Oracle等。
Entity Framework代码优先(Code First)模式的基本使用步骤
下面是Entity Framework代码优先(Code First)模式的基本使用步骤:
- 创建一个.NET Core项目:
在Visual Studio中创建一个新的.NET Core控制台应用程序。
- 安装Entity Framework(Core):
使用NuGet包管理器安装Entity Framework(Core)。
- 编写实体类:
编写C#类来表示领域模型,使用属性来定义模型上的字段。
例如这是一个电影类:
```csharp
public class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public Genre Genre { get; set; }
public DateTime ReleaseDate { get; set; }
public decimal Price { get; set; }
}
public enum Genre
{
Action,
Comedy,
Drama,
Horror,
Thriller
}
```
- 配置Entity Framework核心:
在.NET Core应用程序中配置Entity Framework核心,以便它知道如何将模型映射到数据库中的表和列。
csharp
services.AddDbContext<MovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MovieContext")));
- 创建数据库:
使用Entity Framework核心的命令行工具创建数据库。
- 添加数据:
在程序中使用Entity Framework核心来向数据库中添加数据。
- 查询数据:
在程序中使用Entity Framework核心来查询数据库中的数据。
示例1 - 简单的电影应用程序
下面是一个简单的电影应用程序,用于演示Entity Framework代码优先(Code First)模式的基本使用:
- 创建一个.NET Core项目:
在Visual Studio中创建一个新的.NET Core控制台应用程序。
- 安装Entity Framework(Core):
使用NuGet包管理器安装Entity Framework(Core)。
- 编写实体类:
编写C#类来表示领域模型,使用属性来定义模型上的字段。
```csharp
public class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public Genre Genre { get; set; }
public DateTime ReleaseDate { get; set; }
public decimal Price { get; set; }
}
public enum Genre
{
Action,
Comedy,
Drama,
Horror,
Thriller
}
```
- 配置Entity Framework核心:
在.NET Core应用程序中配置Entity Framework核心,以便它知道如何将模型映射到数据库中的表和列。
csharp
services.AddDbContext<MovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MovieContext")));
- 创建数据库:
在控制台中运行以下命令,使用Entity Framework核心的命令行工具来创建数据库。
dotnet ef database update
- 添加数据:
在程序中使用Entity Framework核心来向数据库中添加数据。
```csharp
using (var context = new MovieContext())
{
context.Movies.Add(new Movie
{
Title = "The Shawshank Redemption",
Genre = Genre.Drama,
ReleaseDate = new DateTime(1994, 10, 14),
Price = 9.99M
});
context.Movies.Add(new Movie
{
Title = "The Godfather",
Genre = Genre.Action,
ReleaseDate = new DateTime(1972, 3, 24),
Price = 7.99M
});
context.SaveChanges();
}
```
- 查询数据:
在程序中使用Entity Framework核心来查询数据库中的数据。
```csharp
using (var context = new MovieContext())
{
var movies = context.Movies.ToList();
foreach (var movie in movies)
{
Console.WriteLine("{0} {1} {2:c}", movie.Title, movie.Genre, movie.Price);
}
}
```
示例2 - 与外部数据库交互的电影应用程序
下面是一个与外部数据库交互的电影应用程序,用于演示Entity Framework代码优先(Code First)模式的进阶使用:
- 创建一个.NET Core项目:
在Visual Studio中创建一个新的.NET Core控制台应用程序。
- 安装Entity Framework(Core):
使用NuGet包管理器安装Entity Framework(Core)。
- 编写实体类:
编写C#类来表示领域模型,使用属性来定义模型上的字段。
```csharp
public class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public Genre Genre { get; set; }
public DateTime ReleaseDate { get; set; }
public decimal Price { get; set; }
}
public enum Genre
{
Action,
Comedy,
Drama,
Horror,
Thriller
}
```
- 配置Entity Framework核心:
在.NET Core应用程序中配置Entity Framework核心,以便它知道如何将模型映射到数据库中的表和列。
csharp
services.AddDbContext<MovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MovieContext")));
- 创建数据库:
如果需要与外部数据库交互,则需要使用Entity Framework核心的Migrations功能来迁移模式,而不是使用命令行工具创建数据库。
- 添加数据:
在程序中使用Entity Framework核心来向数据库中添加数据。
```csharp
using (var context = new MovieContext())
{
context.Movies.Add(new Movie
{
Title = "The Shawshank Redemption",
Genre = Genre.Drama,
ReleaseDate = new DateTime(1994, 10, 14),
Price = 9.99M
});
context.Movies.Add(new Movie
{
Title = "The Godfather",
Genre = Genre.Action,
ReleaseDate = new DateTime(1972, 3, 24),
Price = 7.99M
});
context.SaveChanges();
}
```
- 查询数据:
在程序中使用Entity Framework核心来查询数据库中的数据。
```csharp
using (var context = new MovieContext())
{
var movies = context.Movies.ToList();
foreach (var movie in movies)
{
Console.WriteLine("{0} {1} {2:c}", movie.Title, movie.Genre, movie.Price);
}
}
```
总结
以上是Entity Framework代码优先(Code First)模式的完整攻略,包含了基本使用步骤和两个示例说明。希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Entity Framework代码优先(Code First)模式 - Python技术站