2016-04-17 2 views
1

Я разрабатываю настольное приложение WPF с .NET 4.5 и Entity Framework 6.1.3 с первым кодом, основанным на базе данных.Тип данных Citext в Entity Framework 6.1.3

База данных PostgreSQL и поставщик данных - EntityFramework6.Npgsql версия 3.0.5.

В моей базе данных есть несколько столбцов с типом данных типа citext, например, по электронной почте, поскольку я хочу, чтобы эти столбцы были уникальными и не учитывались в регистре. Проблема заключается в том, что я пытаюсь добавить модель данных в visual studio 2015. Я получаю это предупреждение.

Ошибка 6005: тип данных citext в настоящее время не поддерживается для целевой версии Entity Framework;

, за которым следует слишком много ошибок, согласно этой ссылке тип данных citext был реализован в версии 3.0.1.

https://github.com/npgsql/npgsql/issues/695

ответ

1

Оказывается, что Npgsql поддерживает Citex тип данных на ADO.NET слое но не в Entity Framework, 6 слой.

Итак, у меня было два решения.

1-Либо замените столбцы citex на текст и используйте уникальный нижний индекс для моих регистров, нечувствительных к регистру в базе данных, и сделайте все запросы из моего приложения нечувствительными.

2-или сохранить тип citext в базе данных и взять предыдущую автоматически сгенерированную модель и обмануть Entity Framework (использовать строку с свойствами citext).

См. Эту ссылку для получения дополнительной информации от команды разработчиков Npgsql. https://github.com/npgsql/npgsql/issues/1029

Смежные вопросы