EF5十进制类型映射的奇怪编译器错误

时间:2013-03-03 03:58:29

标签: c# .net entity-framework compiler-errors entity-framework-5

我的类库项目引用了Entity Framework 5程序集。以下代码中“AvailablePoints”的.NET类型为Decimal。我正在尝试使用CodeFirst Fluent API配置将此属性映射到SQL Server中的十进制(9,4)数据类型,以便数据条目不会在2位小数处截断,这是默认映射。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<EventGroup>().Property(g => g.AvailablePoints).HasPrecision(9,4);
    base.OnModelCreating(modelBuilder);
}

我收到以下编译错误:

  

“类型'System.Data.Spatial.DbGeography'是在未引用的程序集中定义的。您必须添加对程序集'System.Data.Entity,Version = 4.0.0.0,Culture = neutral,PublicKeyToken的引用= b77a5c561934e089'。

如果我从方法中的第一个语句中删除.Property(g => g.AvailablePoints).HasPrecision(9,4);,它编译得很好。 EF5文档或论坛帖子都没有解决此编译器错误或解释此Fluent API配置如何与System.Data.Spatial.DbGeography类型相关。

1 个答案:

答案 0 :(得分:0)

这是因为您的项目没有引用所需的程序集。

在解决方案资源管理器中,找到项目中的“参考”文件夹 右键单击该文件夹,然后单击“添加引用” 在“.NET”选项卡中,您可以找到版本4.0.0.0的“System.Data.Entity”条目。添加应该解决此问题。