• 小白学习之Code First(一)


    1、根据自己的理解,Code First :通过实体类和相关配置生成对应的数据库,实现实体和数据库的映射关系,或通过实体类和相关配置与已经生成的实体与已经存在的数据库搭建映射关系

     例:

    实体类:StudentInfo、ClassInfo

     1     public class ClassInfo
     2     {
     3         public int ID { get; set; }
     4         public string Name { get; set; }
     5         //每班都有很多学生
     6         public ICollection<StudentInfo> Students { get; set; }
     7     }
     8     public class StudentInfo
     9     {
    10         public int ID { get; set; }
    11         public string Name { get; set; }
    12         public char Gender { get; set; }
    13         public DateTime Birth { get; set; }
    14         //每个学生都有自己所属的一个班级
    15         public ClassInfo  ClassInfo { get; set; }
    16     }
    View Code

     上下文:CSContext

     1     public class CSContext:DbContext
     2     {
     3         public CSContext():base("name=ConnStr")
     4         {
     5         }
     6         //学生和班级的集合
     7         public DbSet<StudentInfo> StudentInfos { get; set; }
     8         public DbSet<ClassInfo> ClassInfos { get; set; }
     9     }
    10         
    View Code

    配置文件:App.Config

    1   ...
    2   <connectionStrings>
    3     <add name="ConnStr" connectionString="Server=localhost;DataBase=EFDemo;User ID=sa;password=***" providerName="System.Data.SqlClient"/>
    4   </connectionStrings>
    5   ...

    控制台:

     1         static void Main(string[] args)
     2         {
     3             //ID自动映射为数据库的主键
     4             ClassInfo classinfo = new Entities.ClassInfo() {
     5                 Name="一班"
     6             };
     7             StudentInfo studentinfo = new Entities.StudentInfo() {
     8                 Name = "王亮",
     9                 Gender = '',
    10                 Birth = Convert.ToDateTime("1980-01-01")
    11             };
    12             var context = new CSContext();
    13             //context.Entry<StudentInfo>(studentinfo).State = System.Data.Entity.EntityState.Added;
    14             //context.Set<StudentInfo>().Add(studentinfo);
    15             //context.StudentInfos.Add(studentinfo);
    16             context.Entry<ClassInfo>(classinfo).State = System.Data.Entity.EntityState.Added;
    17             context.SaveChanges();
    18             Console.WriteLine("OK");
    19             Console.ReadKey();
    20         }
    View Code

    数据库:自动创建对应database 、table及插入数据(自动产生对应的主外键)

    1 ...
    2 exec sp_executesql N'INSERT [dbo].[ClassInfoes]([Name])
    3 VALUES (@0)
    4 SELECT [ID]
    5 FROM [dbo].[ClassInfoes]
    6 WHERE @@ROWCOUNT > 0 AND [ID] = scope_identity()',N'@0 nvarchar(max) ',@0=N'一班'
    7 ...

    每天学习一点点,每天进步一点点
  • 相关阅读:
    SP3871 GCDEX
    P2424 约数和
    P6561 [SBCOI2020] 人
    POJ
    约数之和(acwing)
    Codeforces Round #677 (Div. 3)EF
    P1516 青蛙的约会
    VJ的MNNUrank的E
    K. Birdwatching(2019-2020 ICPC Southwestern European Regional Programming Contest (SWERC 2019-20))
    友情提示,本博客仅用于博主自己复习,不适合学习者进行学习
  • 原文地址:https://www.cnblogs.com/oren/p/7309677.html
Copyright © 2020-2023  润新知