У меня есть база данных Postgres 12 с одной таблицей:
CREATE TABLE public.messages
(
sender text COLLATE pg_catalog."default",
"timestamp" timestamp with time zone,
message_id bigint,
text text COLLATE pg_catalog."default",
priority bigint,
parameters text[] COLLATE pg_catalog."default"
)
Теперь, когда я хочу использовать эту таблицу в приложении .NET Winforms (не .NET Core), щелкнув правой кнопкой мыши проект, добавить новый элемент, модель данных сущности ADO.NET, EF Code First из базы данных, настроить мое соединение (успешно проверка соединения), выбирая свою таблицу, я получаю эту ошибку:
Код серьезности Описание Предупреждение о состоянии подавления строки файла проекта. Ошибка 6005. Тип данных «_text» в настоящее время не поддерживается для целевой версии Entity Framework; столбец «параметры» в таблице «test.public.messages» был исключен. Логтест D:\Projekte\LogTest\Model1.cs 1
Поле parameters
не попало в класс сообщений:
[Table("public.messages")]
public partial class message
{
public long id { get; set; }
public string sender { get; set; }
public DateTimeOffset? timestamp { get; set; }
public long? base_message_id { get; set; }
public string text { get; set; }
public long? priority { get; set; }
}
Помимо parameters
, модель работает и я могу получить данные из БД. Когда я пытаюсь добавить свойство вручную, оно все еще работает, но параметры всегда равны нулю:
public string[] parameters { get; set; } // also tried List<string>
Как я могу заставить его работать? Из того, что я понимаю при чтении документов, я думаю, что это должно быть возможно?
Мое приложение предназначено для .NET Framework 4.6, я использую EntityFramework6.Npgsql версии 6.4.1.0 с Npgsql версии 4.0.10.0.