我刚刚安装了VS 2012 Premium,我一直在学习PluralSight ASP.Net MVC 4教程。我讲的是第4章,该项目使用EF 4 Code First自动创建了一个数据库。
奇怪的是,它创建了额外的数据库列,而不是匹配我的Restaurant.cs模型文件中的属性。
在餐厅.cs我有:
namespace OdeToFood.Models
{
public class Restaurant
{
public int ID { get; set; }
public string Name { get; set; }
public Address Address { get; set; }
}
}
但是,在OdeToFoodDB dbo中。它生成的餐厅餐桌:
- ID(PK,int,不为null)
- 名称(nvarchar(max),null)
- Address_Street(nvarchar(max),null)
- Address_City(nvarchar(max),null)
- 地址状态(nvarchar(max),null)
- Address_Country(nvarchar(最大值),null)
但是类中没有街道、城市、州和乡村属性。在视频中,数据库只有ID、Name和Address列,但我不知道这是否与他在EF处于预发布状态时使用EF有关。新的外汇基金是否有一些重大假设?
有人知道这里发生了什么吗?
我已经删除了生成的数据库、obj和bin中的文件,重新创建了Restaurant.cs类,卸载了EF4,并添加了EF5,但最终结果没有任何变化。我仍然得到那些与我的Restaurant.cs文件无关的额外专栏。
您所看到的是经过设计的。Address
是复杂类型,这就是复杂类型在数据库表中的表示方式。
请看这里对这个例子的解释。