使用Entity Framework编程5.docx
- 文档编号:25229667
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:45
- 大小:476.18KB
使用Entity Framework编程5.docx
《使用Entity Framework编程5.docx》由会员分享,可在线阅读,更多相关《使用Entity Framework编程5.docx(45页珍藏版)》请在冰豆网上搜索。
使用EntityFramework编程5
使用Entity.Framework编程(5)
第五章
对数据库映射使用默认规则与配置
到目前为止我们已经领略了CodeFirst的默认规则与配置对属性、类间关系的影响。
在这两个领域内,CodeFirst不仅影响模型也影响数据库。
在这一章,你将让默认规则与配置的目光聚焦在类映射到数据库上而不影响概念模型。
我们从简单的映射开始,设法指定数据库的表名,构架与属性。
在此你将掌握如何让多个类映射到一个通用表中,或将单个类映射到多个表中。
最后,带您漫步各种继承架构的配置。
将类名映射到数据库表名和构架名
EF框架使用模型的类名的复数形式来生成数据库表名—Destination变成Destinations,Person变成People等。
默认的类命名规则可能与您设定的命名规则不一致,例如需要指定非复数形式的表名(例如PersonPhoto类不要映射到PersonPhotoes表上去),或者你想映射到一些现有的表,其表名恰好与CodeFirst的规则不同。
可以使用DataAnnotations来确保CodeFirst将你的类映射到正确的表名上。
使用Table标记,就可改变数据库构架的表名。
数据库表命名对其他映射至关重要,正如你将在本章看到的,包括实体分割,继承层次结构,甚至多对多映射。
默认规则里CodeFirst复数化类名,然后使用复数化后的结果作为类映射的表名。
另外,默认情况下所有的表都被安置到dbo构架里。
使用DataAnnotations配置表和构架名
Table标记允许你改变类映射的表名。
在上一章,PersonPhoto被不恰当地复数化了,表名为PersonPhotoes。
尽管这样仍可以正常工作,但直接使用PersonPhoto也是可行的:
[Table("PersonPhotos")]
publicclassPersonPhoto
另一个例子是原始的BrakAway数据库,在ProgrammingEntityFramework的第一,二版都使用过.包含相关目的地信息的表名为Locations。
如果你映射到此表,就必须指定表名:
[Table("Locations")]
publicclassDestination
Table标记还有一个参数可以指定构架名.这里是一个与表名共同指定的例子:
[Table("Locations",Schema="baga")]
publicclassDestination
记住VB的语法有些不同: