小白学习之Code First(一)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 小白学习之Code First(一)

小白学习之Code First(一)

 2017/8/9 3:31:22  GS封印  程序员俱乐部  我要评论(0)
  • 摘要:1、根据自己的理解,CodeFirst:通过实体类和相关配置生成对应的数据库,实现实体和数据库的映射关系,或通过实体类和相关配置与已经生成的实体与已经存在的数据库搭建映射关系例:实体类:StudentInfo、ClassInfo1publicclassClassInfo2{3publicintID{get;set;}4publicstringName{get;set;}5//每班都有很多学生6publicICollection<StudentInfo>Students{get
  • 标签:学习

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

 例:

实体类:StudentInfo、ClassInfo

class="code_img_closed" src="/Upload/Images/2017080903/0015B68B3C38AA5B.gif" alt="">
 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     }
logs_code_collapse">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 ...

 

发表评论
用户名: 匿名