Лучший способ иметь пользовательские атрибуты для полей Entity Framework - PullRequest
0 голосов
/ 31 октября 2019

У меня много моделей каркасов сущностей. Допустим, общее количество полей во всех моделях EF составляет 500.

У меня есть 2 разных вида MVC. простой вид и полный вид.

* простой вид отображает только около 200 из этих полей. В представлении full будут отображены почти все из них.

Например, это образец одной модели EF:

    public class Country
{
    [Key]
    public int Id { get; set; }
    public bool Argentina { get; set; }
    public bool Aruba { get; set; }
    public bool Bahamas { get; set; }
    // and others...
}

Я хочу отметить каждыйиз вышеперечисленных полей с какой-то аннотацией данных или пользовательским атрибутом, чтобы я мог использовать логику кода для фильтрации или определить, какой это тип поля. Например:

[SimpleView]
public bool Argentina {get ;set; }

Чтобы в представлении MVC я мог сделать что-то вроде этого:

@if (IsSimpleView(Model.Argentina))
{
    // some logic to display out the input controls
}

У меня есть несколько экранов, которые будут зависеть от этой логики (и, возможно,предстоящие отчеты), и я хочу иметь простое обслуживание. Я предпочитаю не создавать дополнительные поля или таблицы для поддержки этого. Я также предпочитаю не поддерживать это в некоторой бизнес-логике. Таким образом, я надеюсь, что все эти поля (на самом деле их всего около тысячи и разбитые на 50 таблиц) можно легко поддерживать здесь.

Всегда будет только 2 типа полей (простые или полные), и я надеюсь только отметить простые. Некоторые поля также могут изменить тип в будущем.

Я также использую платформу сущностей 6 - сначала код.

Спасибо.

...