EF CodeFirst学习笔记001--主键约定

Code First 的核心是约定,这些默认的规则使我们可以用我们自己的类来创建模型。EF框架要求一个类必须有一个键属性。规则约定如果一个属性名为Id或者是类名+Id的形式(如PatientId),这一属性就被自动配置为键。如果无法找到满足这一规则的属性,将会在运行时抛出一个异常告诉你没有找到Key.其他约定包括确定字符串的默认长度,或者默认表结构,以及当类相互继承时如何在数据库内建表等等。

代码:红色部分为主键

 public class TestUser
    {
        public int TestUserId
       {
            get;
            set;
        }
        public string UserName
        {
            get;
            set;
        }
    }

备注:取名为UserId时,运行时提示需要指定键值.

时间: 2024-10-28 23:10:11

EF CodeFirst学习笔记001--主键约定的相关文章

MongoDB学习笔记~ObjectId主键的设计

说一些关于ObjectId的事 MongoDB确实是最像关系型数据库的NoSQL,这在它主键设计上可以体现的出来,它并没有采用自动增长主键,因为在分布式服务器之间做数据同步很麻烦,而是采用了一种ObjectId的方式,它生成方便,占用空间比long多了4个字节,(12个字节)在数据表现层面也说的过去,它是一种以时间,机器,进程和自增几个因素组合的方式来体现的,可以近似看成是按时间的先后进行排序的,对于ObjectId的生成我们可以通过MongoDB服务端去获得,或者在客户端也有对它的集成,使用方

EF Code-First 学习之旅 Code First Conventions

协定是一系列的默认规则用来自动配置领域中的概念模型 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[]

spring学习笔记001

转载自:http://www.cnblogs.com/zplogo/p/5029918.html SpringMVC学习笔记001 情景:SpringMVC向后台控制层发送请求,特定方法处理该请求(获取传过来的数据,响应请求,把一些简单数据放入request即Model对象中) 在web.xml中加入SpringMVC的DispatcherServlet核心控制器,指明拦截哪些请求. 在WEB-INF文件夹下建立SpringMVC的XML配置文件,component-scan指明扫描那个包下的控

ObjectARX2010 学习笔记001:在新数据库中创建直线并将此数据库保存成DWG文件

static void swtArxProject5createLine(void) { // Add your code for command swtArxProject5.createLine here //创建新的CAD数据库 AcDbDatabase *pDb=new AcDbDatabase(); //定义块表指针 AcDbBlockTable *pBlkTbl; //获取块表 pDb->getSymbolTable(pBlkTbl,AcDb::kForRead); //定义块表记录

EF Code-First 学习之旅 DataAnnotations

数据注解:配置选项的子集:Fluent API包含所有选项 System.ComponentModel.DataAnnotations Attributes: Attribute Description Key 标记实体的属性映射到数据库表中的主键 Timestamp 标记助兴为不可空的时间戳列(行版本) ConcurrencyCheck 标记一个或多个属性做并发检查(当用户编辑或删除数据的时候)  Required 属性必须有值 MinLength 设置属性类型为数组或字符串的最小长度 Max

EF Code-First 学习之旅 配置一对一的关系

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

Web前端学习笔记(001)

....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记                                    2016年6月15日10:38:53    /****************************************************************begin******************************

EF Codefirst学习系列三:种子数据

1.写在前面 前面写了数据库自动生成,有的朋友可能会发现了,这玩意不好用啊,我辛辛苦苦写了好久的测试数据,自动建库时一下子清了个干干净净,再测试又要辛辛苦苦的重新创建,这不是坑人吗!嗯,你说的很对,是很坑,我也觉得很坑,所以今天咱们来学更好的方法. 2.开搞 想保留测试数据的话有两种方式可以实现,这里先说说第一种:创建种子数据. 假设这样一个场景,有一天咱们正在开开心心的撸代码,突然领导过来说:猿猿,先把你手里的活放放,这里有一个学生管理系统比较紧急,先把这个搞搞吧.虽然咱们很不爽被打断,但是本

hibernate系列笔记(4)---主键生成策略

主键生成策略 常见的生成策略分为六种 1.increment 由Hibernate从数据库中取出主键的最大值(每个session只取1次),以该值为基础,每次增量为1,在内存中生成主键,不依赖于底层的数据库,因此可以跨数据库. <id name="id" column="id"> <generator class="increment" /> </id> Hibernate调用org.hibernate.id.