zoukankan      html  css  js  c++  java
  • 小白学习之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 ...

    每天学习一点点,每天进步一点点
  • 相关阅读:
    炫酷风扇
    linux 安装wordpress 无故往外发送大量垃圾邮件
    四大行及邮储微信银行体验
    房屋抵押合同及契税缴纳办事指南(参考)
    wordpress搬家到 linode 步骤简析
    linux mysql无故无法启动了,centos 7
    淘宝轮播JS
    curl模拟带验证码的登录
    php正则表达式,在抓取内容进行匹配的时候表现不稳定
    Js的闭包,这篇写的是比较清晰明了的
  • 原文地址:https://www.cnblogs.com/oren/p/7309677.html
Copyright © 2011-2022 走看看