使用Entity_Framework编程(3)

使用Entity_Framework编程(3)

ID:46958662

大小:504.50 KB

页数:25页

时间:2019-12-01

使用Entity_Framework编程(3)_第1页
使用Entity_Framework编程(3)_第2页
使用Entity_Framework编程(3)_第3页
使用Entity_Framework编程(3)_第4页
使用Entity_Framework编程(3)_第5页
资源描述:

《使用Entity_Framework编程(3)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.....使用Entity.Framework编程(3)第三章对属性使用约定和配置在第2章,对CodeFirst的约定以及如何通过配置覆写默认约定行为进行了大致的介绍。学习了如何使用DataAnnotations进行配置,也学习了如何使用FluentAPI作出相同的配置,并对两者进行了对比。在本章乃至以后几章里,将深入各种用于配置模型的领域。对每个主题会看到CodeFirst如何通过默认规则进行工作,也会学到如何通过DataAnnotations和FluentAPI来覆写这些规则。前已指出,在FluentAPI中可以实现的很多配置在DataAnnotations无法实现。我们会在适当的时

2、机指出这些差异。本章专注于对类中属性的配置,以观察默认规则和配置对数据库列的影响。你将会学习到诸如如何控制字符串长度,byte数组,数值的精度等方面的知识。你也可以学到键属性以及所谓的“开放式并发属性”。最后,您还可以学到有关CodeFirst检测一个属性是否是复杂类型(aka值类型),如果CodeFirst无法从您的域类中推断出复杂类型时,我们将都会您如何对CodeFirst提供帮助以识别复杂类型。在CodeFirst中使用属性在第2章里,您已经看到一些应用于字符串属性的规则和配置选项,在进入新的选择我们快速回顾一下。Length字长Convention默认规则max(typespec

3、ifiedbydatabase)max(类型由数据库指定)DataAnnotationMinLength(nn)MaxLength(nn)StringLength(nn) Fluent Entity.Property(t=>t.PropertyName).HasMaxLength(nn) 字长用于描述数组的长度。包括对字符串和byte数组。 学习参考.....CodeFirst的默认规则string或者byte数组的长度应为最大。根据不同的数据库类型确定在数据库最终的类型。对SQLServer而言,string会生成nvarchar(max),而byte数组会生成varbinary

4、(max).你可以覆写默认长度来设置在数据库中的实际字长。长度的最大值会在EF框架将更新数据存入数据库之前进行验证。如果使用DataAnnotation来配置,还可以为数组配置MinLength(最小长度)特性。最小长度特性也会得到EF验证API的验证,但不会影响数据库。数据类型Convention默认规则Thedefaultcolumndatatypeisdeterminedbythedatabaseprovideryouareusing.ForSQLServersomeexampledefaultdatatypesare:默认的列数据类型由数据库决定,对SQLServer而言如下:S

5、tring:nvarchar(max)Integer:intByteArray:varbinary(max)Boolen:bitDataAnnotation Column(TypeName="XXX")Fluent Entity.Property(t=>t.PropertyName).HasColumnType("XXX")第2章,您已经看到了几个如何映射.Net类型到数据库数据类型的例子。Destination和Lodging类包含有整型,字符串,Byte数组,布尔型变量。CodeFirst通知数据库选择合适的数据类型匹配每一列。由于使用的是SQLServer数据库,因此分别映射

6、到nvarchar(max),int,varbinary(max)和bit类型。根据您选择的配置当然也可以指定到基他类型。例如,将字符串映射到数据库的int数据类型,运行时DbModelBuilder就会抛出一个错误告知映射非法,然后会给出如何进行纠正的细节指示。可空性和必需项配置Convention默认规则KeyProperties:notnullindatabase键属性:在数据库中为非空学习参考.....ReferenceTypes(String,arrays):nullinthedatabase引用类型(String,数组):在数据库中可空ValueTypes(allnumeri

7、ctypes,DateTime,bool,char):notnullindatabase值类型(所有数字类型,日期,布尔,字符):在数据库为非空NullableValueTypes:nullindatabaseNullable值类型(可空类型):在数据库可空DataAnnotation RequiredFluent Entity.Property(t=>t.PropertyName).IsRequired默认规则约

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。