EF code first如何创建数据表
时间: 2023-07-31 12:04:31 浏览: 125
使用MySQL和 Entity Framework Code First(EF Code First)创建数据库
使用 Entity Framework Code First 可以方便地创建数据表。以下是基本步骤:
1.创建一个继承自 DbContext 的类,该类代表数据库上下文。
2.定义一个实体类,该类代表数据库中的一个表。在实体类上使用数据注解或 Fluent API,来指定表名、列名、数据类型、主键、外键等信息。
3.在数据库上下文类中,使用 DbSet 属性将实体类与数据库上下文关联起来。
4.创建一个数据库初始化类,该类继承自 DropCreateDatabaseIfModelChanges 或 CreateDatabaseIfNotExists,用于在应用程序启动时自动创建数据库和表。
5.在应用程序启动时,使用数据库初始化类的静态方法,来初始化数据库。
以下是一个示例:
```csharp
// 1.创建数据库上下文
public class MyDbContext : DbContext
{
public DbSet<User> Users { get; set; }
}
// 2.定义实体类
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
// 3.在数据库上下文中关联实体类
public class MyDbContext : DbContext
{
public DbSet<User> Users { get; set; }
}
// 4.创建数据库初始化类
public class MyDbInitializer : DropCreateDatabaseIfModelChanges<MyDbContext>
{
protected override void Seed(MyDbContext context)
{
// 初始化数据
context.Users.Add(new User { Name = "Tom", Age = 20 });
context.Users.Add(new User { Name = "Jerry", Age = 22 });
base.Seed(context);
}
}
// 5.在应用程序启动时初始化数据库
Database.SetInitializer(new MyDbInitializer());
```
运行应用程序后,EF Code First 将会自动创建名为 MyDbContext 的数据库,并在其中创建一个名为 Users 的表,该表包含 Id、Name 和 Age 三列。同时,数据库初始化类 MyDbInitializer 会在数据库创建后,向 Users 表中插入两条初始化数据。
阅读全文