Вам сначала нужны аннотации данных для базы данных Entity Framework? ie Ключ, обязательно - PullRequest
0 голосов
/ 26 мая 2020

Сначала я использую базу данных Entity Framework.

Существует много несоответствий с нашими C# классами сущностей, где у некоторых есть аннотации к данным, а у некоторых нет. (За прошедшие годы много разных разработчиков и много вырезаний и вставок)

Например, в коде ниже таблица CoverageFactor уже существует в базе данных.

Есть ли какие-либо преимущества в указании столбцов которые являются ключевыми и обязательными? Поскольку первичный ключ и если допускаются значения NULL, уже были определены для столбца, я бы не подумал.

Если имена столбцов базы данных и имена свойств совпадают, есть ли преимущества в использовании аннотации данных столбца и порядка.

Наконец, что насчет аннотации данных таблицы? Опять же, значения в таблице и имена классов совпадают.

Я просто пытаюсь избавиться от беспорядка в нашем коде и быть последовательным.

Любые советы приветствуются.

[Table("CoverageFactor")]
public class CoverageFactor 
{

    [Key]
    [Required]
    [Column("Term", Order = 1)]
    public int Term { get; set; }

    [Required]
    [Column("Factor")]
    public decimal Factor { get; set; }

    [Key]
    [Required]
    [Column("EffectiveDate", Order = 2)]
    public DateTime EffectiveDate { get; set; }

    [Column("EndDate")]
    public DateTime? EndDate { get; set; }

1 Ответ

2 голосов
/ 26 мая 2020

EF требует, чтобы у каждой сущности был ключ.

RequiredAttribute может использоваться на стороне клиента Проверка

Сопоставления столбцов и таблиц можно безопасно удалить, если имена одинаковы, но предоставляют документацию и позволяют разработчикам изменять имена классов и свойств, не нарушая работу приложения.

В качестве альтернативы все это сопоставление можно переместить в OnModelCreating .

...