Сопоставьте EFCore с пользовательским составным типом oracle

#c# #.net #oracle11g #entity-framework-core

Вопрос:

Итак, у меня есть таблица, содержащая столбец типа…назовем его ШТАМП:

 CREATE TYPE STAMP( 
    timestamp DATE, 
    num INTEGER 
)
 

Поэтому, естественно, моя модель EF имеет свойство типа Stamp:

 public class Stamp
{
  public DateTime Timestamp { get; set; }
  public int Num { get; set; }
}
 

И все же я получаю ошибку The property Table.From is of type 'Stamp' which is not supported by the current database provider .

Как я могу это сопоставить? Проблема EFCore на github, похоже, закрыта.

Комментарии:

1. Какой вопрос? Насколько я знаю, нынешний Оракул ADO.NET провайдер не поддерживает сопоставление таких типов.

2. Я добавил ссылку на вопрос — она есть в репо EFCore.

3. Ну, эта проблема не тот же случай, что и у вас. Наслаждайтесь github.com/oracle/dotnet-db-samples/issues/56 . Затем вам придется подождать, когда с этим справится поставщик Oracle EF Core. Вероятно Devart , у поставщика данных может быть такая функция.

4. О, теперь я знаю, что они называются UDT, спасибо 🙂

Ответ №1:

Он называется определяемым пользователем типом (UDT). В настоящее время он не поддерживается Oracle.ManagedDataAccess.Core. И, конечно же, он не поддерживается поставщиком Oracle EF Core.

Проблема с отслеживанием: https://github.com/oracle/dotnet-db-samples/issues/56