我刚刚安装了VS 2012 Premium,我一直在关注PluralSight ASP.Net MVC 4教程。我在第4章,该项目使用EF 4 Code First自动创建数据库。为什么在VS 2012中使用Code First时,Entity Framework 4会生成额外的列?
奇怪的是,它创建额外的数据库列而不是匹配我的Restaurant.cs模型文件中的属性。
在Restaurant.cs我有:
namespace OdeToFood.Models
{
public class Restaurant
{
public int ID { get; set; }
public string Name { get; set; }
public Address Address { get; set; }
}
}
然而,在OdeToFoodDB dbo.Restaurants表它产生:
- ID(PK,INT,不为空)
- 名称(为nvarchar(最大),NULL)
- Address_Street(为nvarchar(最大),NULL)
- ADDRESS_CITY(为nvarchar(最大),NULL)
- ADDRESS_STATE(为nvarchar(最大),NULL)
- ADDRESS_COUNTRY(为nvarchar(最大),NULL)
但没有街道,城市,州,和在类国家属性。在视频中,数据库只有ID,名称和地址列,但我不知道这是否与他在使用EF时处于预发布状态的事实有关。新的EF有什么大的假设?
有没有人有任何想法这里发生了什么?
我已经删除了生成的数据库,obj和bin文件,重新创建了一个Restaurant.cs类,卸载了EF4,并添加了EF5,但没有任何更改结果。我仍然得到那些与我的Restaurant.cs文件无关的额外列。
你可以显示映射吗?我认为你已经将'地址'映射为'Restaurant'的一个复杂属性。 – Eranga
对不起,但我该怎么做?它是否与“实体框架电动工具Beta 2”有关?这是我在Google上找到的唯一EF映射信息。 –
您是否重写了'DbContext'类的'OnModelCreating'方法? – Eranga