Должен ли я использовать обязательный модификатор с навигацией Entity Framework?C#

Место общения программистов C#
Ответить
Anonymous
 Должен ли я использовать обязательный модификатор с навигацией Entity Framework?

Сообщение Anonymous »

Типы ссылок, допускающие значение NULL, включены.

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

public class TestExecution
{
[Key]
public int Id { get; set; }

public ParametersSet? ParametersSet { get; set; }

[ForeignKey("Environment")]
public required int EnvironmentId { get; set; }

public required Environment Environment { get; set; }
}

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

public class ParametersSet
{
[Key]
public int Id { get; set; }

// Other properties

[ForeignKey("TestExecutionId")]
public int TestExecutionId { get; set; }

public TestExecution TestExecution { get; set; }
}

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

public class Environment
{
[Key]
public int Id { get; set; }

// Other properties

public ICollection TestExecutions { get; set; } = new List();
}
Я понимаю, что мне не следует использовать обязательное с необязательным (обнуляемым, поскольку NRT включено) отношением. Следовательно, почему я написал общедоступный набор параметров? ПараметрыSet {получить; набор; в TestExecution.
Однако, от зависимого параметраSet до основного TestExecution, следует ли мне использовать требуемый вот так :

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

public class ParametersSet
{
[Key]
public int Id { get; set; }

[ForeignKey("TestExecutionId")]
public required int TestExecutionId { get; set; }

public required TestExecution TestExecution { get; set; }
}
Или аналогично от зависимого объекта TestExecution к основному объекту Environment?

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

public class TestExecution
{
[Key]
public int Id { get; set; }

public ParametersSet? ParametersSet { get; set; }

[ForeignKey("Environment")]
public required int EnvironmentId { get; set; }

public required Environment Environment { get; set; }
}
Документы EF предлагают использовать require со ссылочными типами, но не указано, следует ли делать это с навигацией или нет.


Подробнее здесь: https://stackoverflow.com/questions/791 ... avigations
Ответить

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

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

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

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

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