1

我的类库项目引用了 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类型的关系。

4

1 回答 1

0

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

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

于 2013-03-03T04:15:04.317 回答