EF CodeFirst学习笔记004--足够聪明】的更多相关文章

将BlogTypes注释掉,但因为Blogs中定义了BlogType 这样类型的属性,所以Ef会聪明的找到BlogType类. public class BlogEntities:DbContext { static BlogEntities() { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<BlogEntities>()); } public DbSet<Blog> Blogs { get; set;…
Code First 的核心是约定,这些默认的规则使我们可以用我们自己的类来创建模型.EF框架要求一个类必须有一个键属性.规则约定如果一个属性名为Id或者是类名+Id的形式(如PatientId),这一属性就被自动配置为键.如果无法找到满足这一规则的属性,将会在运行时抛出一个异常告诉你没有找到Key.其他约定包括确定字符串的默认长度,或者默认表结构,以及当类相互继承时如何在数据库内建表等等. 代码:红色部分为主键 public class TestUser { public int TestUs…
参考: http://www.cnblogs.com/Wayou/archive/2012/09/20/EF_CodeFirst.html webconfig中修改: <connectionStrings>     <add name="BlogEntities" connectionString="server=gwsite4;database=EfStudy;integrated security=false;User ID=sa;Password=te…
BlogEntities这个类从DbContext继承,负责数据库的更新. Database.SetInitializer(new DropCreateDatabaseIfModelChanges<BlogEntities>()); 这段代码表示:当具体的类发生变化时将重新删除现有的数据库,重新生成新的数据库. 测试: 修改TestUser类中的TestUserName为updateUserName 执行程序 TestUsers表字段为updateUserId(重新创建的新表) Blogs表原…
EF CodeFirst 真是时光如梦,岁月如歌,自己一不留神就被后浪拍在了沙滩上,就连我要学的这个东西也是12年就在博客园很火了. EF有三种开发模式,DatabaseFirst, ModelFirst,CodeFirst,我前两种都用过,CodeFirst以前只是听说过,但从来没用过,最新下了一些开源项目,打开发现看不懂,不得不继续学习: 创建学生类 public class Student { public int StudentId { get; set; } public string…
一.概要 本文主要是学习CodeFirst思想.技术上的实现是C#(.net framework4.6.1) 控制台 + PostgreSQL 10.2.1 代码:https://pan.baidu.com/s/1ggzHRub 二.实现过程 1.新建控制台 2.添加nuget包:EntityFramework6.Npgsql,还有很多次要包,依据代码需要增加 3.app.config配置,依据每个人的不同情况自行更改 <system.data> <DbProviderFactories…
Code First中有三种不同的方法表示继承层次关系 1.Table per Hierarchy (TPH): 这种方法建议用一个表来表示整个类的继承层次关系,表中包含一个识别列来区分继承类,在EntityFramework中,这是默认的实现   类与数据库表的映射最简单的策略应该是:每个持久类对应一张表.这种方法听起来很简单,继承是一个可见的结构之间的不匹配的面向对象和关系世界,因为面向对象系统模型都是“is a”和“has a”的关系. SQL中的实体关系都是“has a”的关系.SQL数…
协定是一系列的默认规则用来自动配置领域中的概念模型 1:类型发现 Code-First对包含DBSet属性的类型创建表(包括这些类型的所有引用类型) public class Student { public Student() { } public int StudentID { get; set; } public string StudentName { get; set; } public DateTime DateOfBirth { get; set; } public byte[]…
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 运算符:对常量 或是 变量进行操作的符号 // 分为:算术运算符.赋值运算符.比较运算符.逻辑运算符.位运算符 // 1.算术运算符:+.-.*./.%.++.-- int i = 7; int j = 2; System.out.println(i + j); System.out.println(i - j);…
1对1.1对0 的关系 例如:Entity1与零个或一个Entity2的实例有关系 public class Student { public Student() { } public int StudentId { get; set; } public string StudentName { get; set; } public virtual StudentAddress Address { get; set; } } public class StudentAddress { publi…