Code First 数据库的表中属性的配置
数据类型的约定配置
默认规则 |
列的数据类型是由数据库决定的,SqlServer的默认规则如下 String: nvarchar(MAX) Int:int Bool:bit Decimal:decimal(18,2) Byte[]:varbinary(MAX) |
DataAnnotation |
[Column(TypeName=”varchar”)] |
Fluent |
modelBuilder.Entity<Category>().Property(c=>c.Name).HasColumnType(“varchar”) |
数据类型的长度约定配置
默认规则 |
max |
DataAnnotation |
[MaxLength(100)] [MinLength(10)] [StringLength(50)] |
Fluent |
modelBuilder.Entity<Category>().Property(c=>c.Name).HasMaxLength(50) |
列是否可空的约定配置
默认规则 |
主键非空 外键可以为空 Int,bit,decimal,dateTime非空 Varchar,varbiary 可以为空 |
DataAnnotation |
[Required] |
Fluent |
modelBuilder.Entity<Category>().Property(t=>t.Name).IsRequired() |
主键约定配置
默认规则 |
属性名称是Id,或者是类名称+Id作为主键 |
DataAnnotation |
[Key] |
Fluent |
modelBuilder.Entity<Category>().HasKey(c=>c.Id) |
EF框架要求每个实体都要有主键,没有主键会抛出异常,当你的主键是GUID时,需要特别处理,DataAnnotation :[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
Fluent:modelBuilder.Entity<Category>().Porperty(c=>c.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
时间戳
只有byte[]类型的属性可以映射TimeStamp
DataAnnotation:[Timespamp]
Fluent:modelBuilder.Entity<Category>().Property(c=>c.RowVersion).IsRowVersion()
Unicode数据类型
默认规则 |
默认为Unicode数据 |
DataAnnotation |
不能配置 |
Fluent |
IsUnicode() |
Decimal设置
默认规则 |
(8,2) |
DataAnnotation |
不可以设置 |
Fluent |
HasPrecision(10,2) |
复杂的数据类型
默认规则 |
复杂类型没有Key属性,用做其他类属性时,不能用做集合属性 |
DataAnnotation |
[Complex] |
Fluent |
modelBuilder.Complex<Address>() |
转载于:https://www.cnblogs.com/50614090/archive/2012/02/16/2354117.html
Code First 数据库的表中属性的配置相关推荐
- mysql doc插入数据_如何向MySQL数据库的表中录入数据.doc
如何向MySQL数据库的表中录入数据 当建好了数据库及表时,首先想到的就是向数据库的表中输入数据,这就涉及到如何向数据库录入数据,下面我们就来探讨一下这个问题. 1.常用的方法是使用insert语句( ...
- 如何在mysql中录入数据库_如何向MySQL数据库的表中录入数据
当你建好了数据库及表时,你首先想到的就是向数据库的表中输入数据.这就牵涉到如何向数据库增加数据.下面我们就来探讨一下这个问题: 1.一般我们常用的方法是insert语句(这里假定各位的版本都不是很低) ...
- 如何在mysql上输入数据表_向MySQL数据库的表中录入数据的方法
MySQL数据库应用范围相对来说还是比较广泛的,MySQL数据库操作涉及到的知识还是很多的,其中,当你建好了数据库及表时,你首先想到的就是向数据库的表中输入数据.这就牵涉到如何向数据库增加数据.下面我 ...
- mysql数据库怎么输入数据_如何向MySQL数据库的表中录入数据
当你建好了数据库及表时,你首先想到的就是向数据库的表中输入数据.这就牵涉到如何向数据库增加数据.下面我们就来探讨一下这个问题: 1.一般我们常用的方法是insert语句(这里假定各位的版本都不是很低) ...
- MySQL federated存储引擎--访问在远程数据库的表中的数据,而不是本地的表
一.FEDERATED简介 federated就像他的名字所说"联盟",意思就是:把两个不同区域的数据库联系起来,以致可以访问在远程数据库的表中的数据,而不是本地的表. 二.安装F ...
- 本地MySQL数据库要访问远程MySQL数据库的表中的数据的实现
转自: http://blog.csdn.net/jenminzhang/article/details/9872647 1.实现基本思路:借助 MySQL的 federated 存储引擎实现 fed ...
- mysql创建表属性引_【学习之Mysql数据库】mysql数据库创建表的属性详解
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 MySQL中create table语句的基本语法是: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name ...
- booleanfield()和booleanfield(default=True)在数据库的表中无法插入
1. 解决方法: 1.实例化对象: 在terminal中执行: 查看数据库表中是否插入成功: 转载于:https://www.cnblogs.com/Zhao159461/p/10907531.htm ...
- 清空数据库所有表中的数据
GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...
最新文章
- 【数据结构】最小生成树 Prim算法 Kruskal算法
- mysql中的sql_mysql中的sql语句
- Okhttp使用简析——Android网络请求框架(一)
- 240多个jQuery插件 功能强大 齐全
- set的find()函数
- js 浮点数精度问题 可以用accounting.js解决
- 如何将stdin、stdout、stderr重定向到/dev/null
- 编程语言python入门-编程语言入门(以python为例)
- TopOn的两种测试方法
- 计算机图形学完整笔记(七):曲线曲面 - 1
- masm32快速编辑器菜单翻译整理
- scratch好书推荐
- 统一诊断服务(UDS)否定响应也可以被抑制
- 7-85 根据输入的空气污染指数,输出相应的信息。
- 域名系统(Domain Name System,DNS)
- intel无盘服务器,英特尔网吧服务器
- Ka的分治|归并排序,注释详尽
- 好女人必看行为守则100条----男人也学学吧!
- 数据库实验四 数据库恢复与安全性
- Unity 3d转2d再转3d
热门文章
- 鸿蒙系统手机还会出吗,华为最强手机即将到来,可能还有华为鸿蒙系统加入!你期待吗?...
- 单调谐回路谐振放大器等效电路分析_谐振回路的工作原理
- 1.72java8_JDK 1.7 1.8 新特性
- 度量相似性的一些指标/函数
- 比较array相等_如何处理JavaScript比较中的临界问题
- 如何将文件从安卓设备中拷贝到PC中
- serv-u 自定义html,Serv-U架设教程_Serv-U使用教程图文版
- php bootstraptable分页,Bootstrap table分页问题汇总【附答案代码】
- “N+虚拟现实行业高峰论坛”成功举办,共创VR美好未来
- Rook存储:Kubernetes中最优秀的存储