Свойство «point.userdata» не может быть отображено, потому что оно имеет тип «объект», который не является поддерживаемыC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Свойство «point.userdata» не может быть отображено, потому что оно имеет тип «объект», который не является поддерживаемы

Сообщение Anonymous »

У меня есть довольно зрелое веб -приложение ASP.net Core, которое использует EF Core против SQL Server.
Мне нужно было использовать типы пространственной географии SQL Server, поэтому добавлено nettopologysuite Пакет Nuget и изменил код в программе.

Код: Выделить всё

builder.Services.AddDbContext(options => {
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"),
x => x.UseNetTopologySuite());
options.EnableSensitiveDataLogging();
options.EnableDetailedErrors();
}, ServiceLifetime.Transient);
< /code>
Я тогда смог добавить свойство в одну из моих моделей следующим образом ... < /p>
public Point Coordinates { get; set; }
< /code>
.... и воспользуйтесь функциями географии. Все работает нормально. < /P>
При разработке я обычно запрошу свою базу данных через LinqPad, используя ядро ​​EF (поскольку это дает мне правильные имена свойств навигации, а также методы расширения и т. Д. ) Однако, поскольку я добавляю географический материал, когда я пытаюсь запросить базу данных из LinqPad, я получаю ошибку ... < /p>

InvalidoperationException: точка свойства '. UserData «не может быть отображена, потому что он имеет тип« объект », который не является поддерживаемым примитивным типом или действительным типом объекта. Либо явно отображает это свойство, либо игнорируйте его, используя атрибут «[notmapped]», либо с помощью «entitytypebuilder.ignore» в 'onmodelcreating'. < /P>
< /blockquote>
Имеет смысл, поскольку LinqPad не запускает приложение (поэтому предположительно не выполняет код в программе. Контекст.
Поиск вокруг, похоже, мне нужно назвать Usenettopologysuite 
в методе контекста .
i попробовал это следующим образом ... < /p>

Код: Выделить всё

  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
if (!optionsBuilder.IsConfigured) {
optionsBuilder.UseSqlServer("connection-string", x => x.UseNetTopologySuite());
}
}
В идеале я бы получил строку подключения от Appsettings.json , но я не мог понять, как это сделать, так и в качестве первой попытки.
Тем не менее, даже с этим кодом на месте я получаю ту же ошибку при попытке запросить базу данных в linqpad. < /p>
Любой, кто может сообщить, как я решаю это ?


Подробнее здесь: https://stackoverflow.com/questions/794 ... ype-object
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»