Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Scaffold mapping. EF Core / 6 сообщений из 6, страница 1 из 1
18.08.2021, 23:05
    #40091630
nepsy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Scaffold mapping. EF Core
Уважаемые форумчане,
есть следующая нерешенная проблема . Есть ли идея как не ломая существующего кода решить проблему с нулевыми значениями?

С Уважением
...
Рейтинг: 0 / 0
23.08.2021, 10:21
    #40092604
nepsy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Scaffold mapping. EF Core
Распишу ситуацию.

Есть таблица

CREATE TABLE [dbo].[Orders] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[UserId] INT NOT NULL,
[IsProcessed] BIT DEFAULT (CONVERT([bit],(0))) NOT NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED ([Id] ASC)
);

Создаю классы вызывая (DBFirst):

авторPM> Scaffold-DbContext "Server=(localdb)\mssqllocaldb; Database=TestDb; Trusted_Connection=true;" Microsoft.EntityFrameworkCore.SqlServer
Build started...
Build succeeded.

To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see http://go.microsoft.com/fwlink/?LinkId=723263.
The column 'dbo.Orders.IsProcessed' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.


Создается класс:

public partial class Order
{
public int Id { get; set; }
public int UserId { get; set; }
public bool? IsProcessed { get; set; }
}

Такая особенность и как с этим бороться не понятно. Править каждый раз в ручную, при наличае более 15 классов не хочется. Есть ли какие-нибудь соображения по этому поводу?
...
Рейтинг: 0 / 0
23.08.2021, 11:19
    #40092625
fkfka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Scaffold mapping. EF Core
nepsy
Такая особенность

В чем особенность?

У тебя в БД, наверняка, поле объявлено как nullable - вот оно у тебя в nullable свойство и превращается.

Впрочем стоп, нет. Не так. Он же тебе явно говорит в чем дело.
...
Рейтинг: 0 / 0
23.08.2021, 11:29
    #40092628
nepsy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Scaffold mapping. EF Core
fkfka
nepsy
Такая особенность


У тебя в БД, наверняка, поле объявлено как nullable - вот оно у тебя в nullable свойство и превращается.



В том-то и дело, что оно not nullable

[IsProcessed] BIT DEFAULT (CONVERT([bit],(0))) NOT NULL,
...
Рейтинг: 0 / 0
23.08.2021, 11:49
    #40092636
fkfka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Scaffold mapping. EF Core
nepsy
fkfka
пропущено...


У тебя в БД, наверняка, поле объявлено как nullable - вот оно у тебя в nullable свойство и превращается.



В том-то и дело, что оно not nullable

[IsProcessed] BIT DEFAULT (CONVERT([bit],(0))) NOT NULL,

Ну там же написано. Если сделать его просто как "bool" то тогда у EF не будет возможности при добавлении записи сказать серверу "используй тут default значение". Отключай DEFAULT CONSTRAINT на время генерации кода - можно даже все это в скрипт объединить, чтобы руками не делать каждый раз.
...
Рейтинг: 0 / 0
23.08.2021, 12:56
    #40092654
nepsy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Scaffold mapping. EF Core
Спасибо всем. Воспользовался Extention "EF Core Power Tool". Все работает. Можно закрывать ветку
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Scaffold mapping. EF Core / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]