我的类库项目引用了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
类型相关。
答案 0 :(得分:0)
这是因为您的项目没有引用所需的程序集。
在解决方案资源管理器中,找到项目中的“参考”文件夹 右键单击该文件夹,然后单击“添加引用” 在“.NET”选项卡中,您可以找到版本4.0.0.0的“System.Data.Entity”条目。添加应该解决此问题。