`Требуется свойство и EF CoreC#

Место общения программистов C#
Ответить
Anonymous
 `Требуется свойство и EF Core

Сообщение Anonymous »

Год назад, в C# ver. 11, был добавлен модификатор . Итак, если мы отмечаем свойство, как это необходимо, как ниже: < /p>

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

public class Point
{
public required int X { get; set; }
public required int Y { get; set; }
}
Мы не можем создать точку экземпляр без init x и y, поэтому, если мы попробуем:

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

        Point fake = new Point();
< /code>
Мы получаем ошибку компилятора: < /p>

Требуемый член 'point.x' должен быть установлен в объектном инициализаторе или
атрибут.

Treate Member 'point.y' должен быть установлен в
initializer или constructor. />  и следующий код в порядке: < /p>
Point point = new() { X = 1, Y = 2 };
< /code>
Обычно эта функция необходима для анализа JSON (описано здесь) < /p>
ОК. Но давайте посмотрим на EF Core. Если мы создаем модель сущности, например: < /p>
public class DownloadCenterFolder
{
public int Id { get; set; }
public string FolderName { get; set; }
}
< /code>
Мы получаем предупреждение: < /p>

Не облегаемое свойство 'foldername' должно содержать не нулевое значение, когда
выходит из конструктора. Рассмотрим объявление имущества как нулевое. 

Но если мы помечаем его по мере необходимости 
:

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

public class DownloadCenterFolder
{
public int Id { get; set; }
public required string FolderName { get; set; }
}
Предупреждение исчезло
Итак, является ли это хорошим способом использовать требуемое ключевое слово для обязательных полей (которое помечено как Builder.property (p => p.projectName) .Isrequired (); ) Когда мы используем ядро ​​EF или не? Это выглядит как красиво (вообще, чтобы избежать этого поля пустой строкой в ​​CTOR), и я не могу найти ничего в Google об использовании этого ключевого слова с EF Core. Или, вероятно, какой -нибудь другой способ отметить обязательные поля?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/775 ... nd-ef-core
Ответить

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

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

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

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

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