大师救命,
我最近在学习MVC3,使用EFcodefirst 过程中,创建了一个类,命名为Person。有ID和Name两个属性,准备运行后让EFcodefirst 自动创建数据库中的Person表,
但是程序运行后,与类名Person对应的表名变成了People,
程序不报错,能运行,数据也一一对应,就是名称不一样。怎么回事啊。
备注:后面把Person这个名字换成了Ren,EFcodefirst 创建的表名也是Ren,就没有错了,但又换回Person后,EFcodefirst 又把表名变成了People。
要疯了。
有高手愿意留邮箱吗:我把源代码发给您。
根据ScottGu给的博客,这个叫命名约定,因为通常数据库的表命名是复数的,类的命名是单数的,因此有这一个“默认命名约定”,因为CodeFirst没有edmx文件,所以也没得设
办法就是合适代码来做Mapping
请看这张图
看OnModelCreating里的话,可以映射到不同的表,当然我没用过,不知道是不是这样可以导致创建数据库时也正确,你可以试一下
你可以看一下模型edmx文件设置,有个复数的属性,设置为false就行了
Person的复数People,源于你选择可“Pluralize or singularize...”
不能收藏?
自己后面再发现,其实可以在类增加[Table("Ren")]属性