Проект библиотеки классов ссылается на сборку Entity Framework 5. Тип .NET для «доступных точек» в приведенном ниже коде - Decimal. Я пытаюсь использовать конфигурации API CodeFirst Fluent для сопоставления этого свойства с десятичным типом (9,4) данных на SQL Server, чтобы записи данных не усекались в 2 десятичных разряда, что является сопоставлением по умолчанию.Странная ошибка компилятора для преобразования десятичного типа EF5
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<EventGroup>().Property(g => g.AvailablePoints).HasPrecision(9,4);
base.OnModelCreating(modelBuilder);
}
Я получаю следующее сообщение об ошибке компилятора:
"The type 'System.Data.Spatial.DbGeography' is defined in an assembly that is not referenced. You must add a reference to assembly '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
.
Вы уверены, что у вас есть dll Entity Framework в вашем проекте? Можете ли вы опубликовать свой проприетар? Вы выполнили настройку API FLuent в том же классе модели? – MayogaX
EntityFramework немного запутанно: 1. В System.Data.Entity (часть .net 4 и 4.5) есть ядро EntityFramework. 2. Есть первый код в сборке EntiyFramework.dll. Эта сборка зависит от EntityFramework.dll. Например, есть класс DbContext. – yonexbat
Ничего себе, это сбивает с толку. Вся документация, книги и учебные видеоролики, которые я прочитал, звучат так, как будто все, что вам нужно, поставляется вместе с пакетом NuGet EF. Очевидно нет. Спасибо за информацию. – MikeyWazz