小白学习之Code First(一)
1、根据自己的理解,Code First :通过实体类和相关配置生成对应的数据库,实现实体和数据库的映射关系,或通过实体类和相关配置与已经生成的实体与已经存在的数据库搭建映射关系
例:
实体类:StudentInfo、ClassInfo
public class ClassInfo
{
public int ID { get; set; }
public string Name { get; set; }
//每班都有很多学生
public ICollection<StudentInfo> Students { get; set; }
}
public class StudentInfo
{
public int ID { get; set; }
public string Name { get; set; }
public char Gender { get; set; }
public DateTime Birth { get; set; }
//每个学生都有自己所属的一个班级
public ClassInfo ClassInfo { get; set; }
}
上下文:CSContext
public class CSContext:DbContext
{
public CSContext():base("name=ConnStr")
{
}
//学生和班级的集合
public DbSet<StudentInfo> StudentInfos { get; set; }
public DbSet<ClassInfo> ClassInfos { get; set; }
}
配置文件:App.Config
...
<connectionStrings>
<add name="ConnStr" connectionString="Server=localhost;DataBase=EFDemo;User ID=sa;password=***" providerName="System.Data.SqlClient"/>
</connectionStrings>
...
控制台:
static void Main(string[] args)
{
//ID自动映射为数据库的主键
ClassInfo classinfo = new Entities.ClassInfo() {
Name="一班"
};
StudentInfo studentinfo = new Entities.StudentInfo() {
Name = "王亮",
Gender = '男',
Birth = Convert.ToDateTime("1980-01-01")
};
var context = new CSContext();
//context.Entry<StudentInfo>(studentinfo).State = System.Data.Entity.EntityState.Added;
//context.Set<StudentInfo>().Add(studentinfo);
//context.StudentInfos.Add(studentinfo);
context.Entry<ClassInfo>(classinfo).State = System.Data.Entity.EntityState.Added;
context.SaveChanges();
Console.WriteLine("OK");
Console.ReadKey();
}
数据库:自动创建对应database 、table及插入数据(自动产生对应的主外键)
...
exec sp_executesql N'INSERT [dbo].[ClassInfoes]([Name])
VALUES (@0)
SELECT [ID]
FROM [dbo].[ClassInfoes]
WHERE @@ROWCOUNT > 0 AND [ID] = scope_identity()',N'@0 nvarchar(max) ',@0=N'一班'
...


小白学习之Code First(一)的更多相关文章
- 小白学习之Code First(四)
code first :约定大于配置(通过配置实体重写约定) 通过两种方式配置实体:DataAnnotations Fluent Api System.ComponentModel.Data ...
- 小白学习之Code First(三)
上下文Context类中的base构造器的几个方法重置(1.无参 2.database name 3 . 连接字符串) 无参:如果基类base方法中无参,code first将会以 :{Namespa ...
- 小白学习之Code First(二)
Code First约定: 注:EDMX模板 (SSDL:存储模型=>数据库表 ,CSDL:概念模型=>实体,C-S模型=>存储和概念模型之间的映射关系) System.Data.E ...
- 小白学习之Code First(五)
Fluent API:另一种配置实体类的方式,它比DataAnnorations提供了更多的配置 其中EntityTypeConfiguration这个类提供了重要的属性.方法来配置对应的实体类,可以 ...
- 电脑小白学习软件开发-C#语言基础之循环重点讲解,习题
写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...
- [置顶] 小白学习KM算法详细总结--附上模板题hdu2255
KM算法是基于匈牙利算法求最大或最小权值的完备匹配 关于KM不知道看了多久,每次都不能完全理解,今天花了很久的时间做个总结,归纳以及结合别人的总结给出自己的理解,希望自己以后来看能一目了然,也希望对刚 ...
- 偏前端--之小白学习本地存储与cookie
百度了很多都是讲的理论,什么小于4kb啊之类的,小白看了一脸懵逼复制到html中为什么没效果!!哈哈.我来写一个方便小白学习. 贴图带文字描述,让小白也运行起来,然后自己再去理解... 1. cook ...
- Python小白学习之函数装饰器
装饰器 2018-10-25 13:49:37 装饰器从字面意思就是用来装饰的,在函数可以理解为:在函数中,我们不想影响原来的函数功能,又想给函数添加新的功能,这时候我们就用到了装饰器. 一般函数操作 ...
- 小白学习VUE第一篇文章---如何看懂网上搜索到的VUE代码或文章---使用VUE的三种模式:
小白学习VUE第一篇文章---如何看懂网上搜索到的VUE代码或文章---使用VUE的三种模式: 直接引用VUE; 将vue.js下载到本地后本目录下使用; 安装Node环境下使用; ant-desig ...
随机推荐
- django系列6--Ajax05 请求头ContentType, 使用Ajax上传文件
一.请求头ContentType ContentType指的是请求体的编码类型,常见的类型共有三种: 1.application/x-www-form-urlencoded 这应该是最常见的 POST ...
- H-a
1.habit 习惯:毒瘾 in the habit of 有....习惯 派生:habitual a.通常的,习惯的:已养成习惯的: 2.hacker 黑客 3.hail n. 雹 vi.下雹 vt ...
- java初级易错问题总结
1.什么是变量?变量的定义格式?要使用变量需要注意什么?就是可变的量数据类型 变量名 = 数值;同一范围内不能重复定义不赋值不能使用 2.Java中的数据类型分几类?基本数据类型有哪些?两大类 ...
- 关于CocoaPods添加第三方库造成项目崩溃
在很多时候,我们接手了别人的代码,项目中已经使用cocoapods,但是再想通过pods添加第三方库时会造成崩溃,如果你没备份项目的话那你就悲催了,幸好当初用了git了,不然又够忙乎的了. 好,回到正 ...
- BZOJ 1834--网络扩容(最大流&费用流)
1834: [ZJOI2010]network 网络扩容 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 3351 Solved: 1750[Submit ...
- [ActionScript 3.0] 通过as3操作web内容
package com.controls.utils { import flash.net.*; import flash.utils.ByteArray; import flash.external ...
- 由button标签在 IE 8.0 下的异常表现引发的一场血案
写在最前的最后:整篇文章絮絮叨叨说了半天,我得出一个最佳实践:和button标签say goodbay,用 a 标签模拟之. 首先看一个在chrome 下的简单demo 这样的布局在组件开发中再常见不 ...
- Struts2运行原理
一个请求在Struts2框架中的处理大概分为以下几个步骤: 1 客户端发送请求:2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤 ...
- iOS关于代码风格问题
cocoapods管理第三方库,详见cocoapods安装及使用 OC代码风格需要规范,所有第三方依赖需要用cocoapods管理.代码风格需要: 1. pod 'CodeFormatter', :g ...
- Lucene7.4学习和简单使用
简述: 前面从新回顾学习了Solr,正好也借此机会顺便学习一下Lucene. 一.什么是Lucene? 全文检索的一个实现方式,也是非结构化数据查询的方法.应用场景:在数据量大,数据结构不固定的时候, ...