EntityFrameWork 课程1
来源:互联网 发布:微信连接失败检查网络 编辑:程序博客网 时间:2024/06/06 19:15
简单代码第一个例子:
假设我们要为XYZ学校创建一个简单的应用程序。此学校申请的用户应该能够添加或更新学生,标准(成绩),教师和课程信息。
首先,我们不必先设计数据库表,而是根据需要为学校域创建类。首先,我们将创建两个简单的学生和标准课程,每个学生都与一个标准相关联,如下所示。
public class Student{ public Student() { } public int StudentID { get; set; } public string StudentName { get; set; } public DateTime? DateOfBirth { get; set; } public byte[] Photo { get; set; } public decimal Height { get; set; } public float Weight { get; set; } public Standard Standard { get; set; }}
标准(年级)班级应该能够容纳多个学生,如下所示。
public class Standard{ public Standard() { } public int StandardId { get; set; } public string StandardName { get; set; } public ICollection<Student> Students { get; set; } }现在,我们已经完成了我们学校应用程序的初始域类。代码优先的方法也需要上下文类,它应该从DbContext派生,正如我们在基本教程部分中使用数据库优先方法创建的那样。访问DbContext获取更多信息。
创建一个如下所示的上下文类,该类从DBContext类派生,并为要成为模型的一部分的类型公开DbSet属性,例如Student和Standard类。DbSet是实体类(也称为实体集)的集合,所以我们赋予了诸如学生和标准之类的实体名称复数的属性名称。
namespace EF_Code_First_Tutorials{ public class SchoolContext: DbContext { public SchoolContext(): base() { } public DbSet<Student> Students { get; set; } public DbSet<Standard> Standards { get; set; } }}现在,我们已经完成了代码优先方法所需的类。现在我们将使用上下文类添加学生,如下所示。class Program{ static void Main(string[] args) { using (var ctx = new SchoolContext()) { Student stud = new Student() { StudentName = "New Student" }; ctx.Students.Add(stud); ctx.SaveChanges(); } }}如果运行该应用程序,则会惊奇地发现应用程序运行成功,并且一名学生成功插入到数据库中。
但是,数据库在哪里,表和它的列是什么?
这是实体框架的Code-First API的美妙之处。它会根据您的上下文类的基础构造函数中传递的参数创建数据库。由于我们的上下文类的构造函数中没有传入任何参数,因此在本地SQLEXPRESS数据库中创建了“EF_Code_First_Tutorials.SchoolContext”数据库,如下所示。它还在这个数据库中创建了两个表,学生和标准表基于上面定义的学生和标准域类。
如上图所示,它创建了Students和Standards表,每个表都包含具有适当数据类型和长度的列。列名和数据类型与各个域类的属性相匹配。它还将StudentId和StandardId作为PK(主键)和Standard_StandardId列作为FK(外键)。
这样,如果不先创建数据库,则可以开始编写一个应用程序,最终将从您的域类创建数据库。
- EntityFrameWork 课程1
- EntityFrameWork 课程2
- EntityFramework [1]
- EntityFrameWork
- EntityFrameWork 从入门到熟悉(1)---DbFirst
- 课程1
- 我的EntityFramework(1):概念、基础范例
- EntityFramework学习心得
- EntityFramework入门
- EntityFramework优缺点
- Entityframework乱码
- EntityFramework 详解
- EntityFrameWork学习
- EntityFramework Transaction
- ENTITYFRAMEWORK学习
- EntityFramework CodeFirst
- EntityFramework 缺失
- EntityFramework预热
- json输出键值对 python
- eclipse中如何导入本地xsd文件
- 笔记:Shell脚本文件报错:-bash: ./xxx.sh: /bin/bash^M: bad interpreter: No such file or directory
- 51Nnod 1050 循环数组最大子段和
- EasyUI的学习总结(一)
- EntityFrameWork 课程1
- linux 防火墙IPTABLES 设置IP连接限制
- 从源码看集合ArrayList
- 【Scikit-Learn 中文文档】密度估计
- c++ int和unsignedint溢出原理分析
- Spring MVC 统一异常处理的两种方式
- OS学习笔记——操作系统概论
- JDK7 AIO 入门(一)------AsynchronousFileChannel
- Android中将带html格式的数据转换成java识别显示内容