EF 4.4与EF 5.0中的数据注释或Fluent API?

时间:2012-10-11 20:29:05

标签: entity-framework data-annotations fluent

我有一个使用EF 4.4和SQL Express创建的ASP.NET MVC项目。在我的模型中有两个对象,User和Department。部门有一个公共User DepartmentManager导航属性,带有一个带有此数据注释的公共Guid DepartmentManagerId外键: [ForeignKey的( “DepartmentManager”)]。首先使用代码,使用DepartmentManagerId的ONE Guid列正确创建Department表。

但是,如果我首先使用用户代码并创建数据库,那么在EF 5.0中使用相同的设置,我的Department表将使用DepartmentManagerId列和DepartmentManager_UserId列创建。

为了让事情变得更有趣,如果在EF 5.0中我删除了外键注释并使用Fluent API,如下所示:

modelBuilder.Entity<Department>()
    .HasRequired(u => u.DepartmentManager)
    .WithMany()
    .HasForeignKey(u => u.DepartmentManagerId);

..数据库正确生成。因此有两个问题。数据注释的处理方式与EF 4.4到EF 5.0不同吗?其次,ForeignKey数据注释和上面的流畅映射有什么区别?应该没有区别,但是在创建DB时,它是数据注释中的额外列。有任何想法吗?提前谢谢。

0 个答案:

没有答案