EF CodeFirst的步骤
1 創建各個實體類
2 創建一個空數據模型,然后刪除掉,為了引入Entity Framework和System.Data.Entity
3 為實體類增加標注
4 為實體增加導航屬性
5?在App.config configuration標簽里面增加connectionStrings標簽,并增加連接字符串
6 創建數據操作類繼承DbContext ,構造函數參數為“name=connStr”
7 增加兩個DbSet屬性,對應操作的實體
8 重寫OnModelCreating方法,使得生成的表不包含復數;
9 調用context.Database.CreateIfNotExists()在對應的數據庫下面生成表
10 通過數據操作類操作表
//ClassInfo
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodeFirstDemo
{
? ? public class ClassInfo
? ? {
? ? ? ? [Key]
? ? ? ? public int Id { get; set; }
? ? ? ? [Required]
? ? ? ? [StringLength(32)]
? ? ? ? public string ClassName { get; set; }
? ? ? ? [Required]
? ? ? ? public DateTime CreateTime { get; set; }
? ? ? ? public ICollection<StudentInfo> StudentInfo { get; set; }
? ? }
}
//StudentInfo
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodeFirstDemo
{
? ? public class StudentInfo
? ? {
? ? ? ? [Key]
? ? ? ? public int Id { get; set; }
? ? ? ? [Required]
? ? ? ? [StringLength(32)]
? ? ? ? public string StudentName { get; set; }
? ? ? ? [Required]
? ? ? ? public DateTime CreateTime { get; set; }
? ? ? ? [Required]
? ? ? ? public ClassInfo ClassInfo { get; set; }
? ? }
}
//MyDataContext
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodeFirstDemo
{
? ? public class MyDataContext:DbContext
? ? {
? ? ? ? public MyDataContext()
? ? ? ? ? ? : base("name = ConnStr")
? ? ? ? {
? ? ? ? }
? ? ? ? protected override void OnModelCreating(DbModelBuilder modelBuilder)
? ? ? ? {
? ? ? ? ? ? modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
? ? ? ? }
? ? ? ? public DbSet<ClassInfo> ClassInfo { get; set; }
? ? ? ? public DbSet<StudentInfo> StudentInfo { get; set; }
? ? }
}
//主方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodeFirstDemo
{
? ? class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? MyDataContext db = new MyDataContext();
? ? ? ? ? ? db.Database.CreateIfNotExists();
? ? ? ? ? ? ClassInfo classInfo = new ClassInfo();
? ? ? ? ? ? classInfo.ClassName = "abc";
? ? ? ? ? ? classInfo.CreateTime = DateTime.Now;
? ? ? ? ? ? db.ClassInfo.Add(classInfo);
? ? ? ? ? ? StudentInfo stu1 = new StudentInfo();
? ? ? ? ? ? stu1.StudentName = "zhangsan";
? ? ? ? ? ? stu1.CreateTime = DateTime.Now;
? ? ? ? ? ? stu1.ClassInfo = classInfo;
? ? ? ? ? ? StudentInfo stu2 = new StudentInfo();
? ? ? ? ? ? stu2.StudentName = "Lisi";
? ? ? ? ? ? stu2.CreateTime = DateTime.Now;
? ? ? ? ? ? stu2.ClassInfo = classInfo;
? ? ? ? ? ? db.StudentInfo.Add(stu1);
? ? ? ? ? ? db.StudentInfo.Add(stu2);
? ? ? ? ? ? db.SaveChanges();
? ? ? ? }
? ? }
}
轉載于:https://www.cnblogs.com/dxmfans/p/9434654.html
總結
以上是生活随笔為你收集整理的EF CodeFirst的步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis传入参数为list、数组、
- 下一篇: 项目复审——Beta阶段