Различные ViewModel одного и того же DomainModel - PullRequest
0 голосов
/ 01 мая 2019

Допустим, у меня есть эта DomainModel:

public class Product
{
    public string Name { get; set; }
    public string Description { get; set; }
    public string SomeBackendValue { get; set; }
}

В приложении продукт может быть создан / отредактирован как из внешнего интерфейса, так и из внутреннего интерфейса, но только внутренний интерфейс может изменять SomeBackendValue.

В интерфейсе Имя и Описание являются обязательными полями, в серверной части они все.

Если я добавлю [Required] во все поля в DomainModel, я получу ошибку ModelState, потому что SomeBackendValue пусто.

Я мог бы, вероятно, не указывать атрибут [Required] в SomeBackendValue и выполнить проверку OnPost, но в реальном приложении есть много других отличий, поэтому я подумал, что могу использовать разные View- / InputModels для frontend / но я не могу добраться до работы.

Я пробовал:

public class ProductFrontend
{
    [Required]
    public string Name { get; set; }
    [Required]
    public string Description { get; set; }
}

public class ProductBackend
{
    [Required]
    public string Name { get; set; }
    [Required]
    public string Description { get; set; }
    [Required]
    public string SomeBackendValue { get; set; }
}

Но тогда поля не имеют значений, потому что они не связаны с DomainModel.

Я также пытался public class ProductFrontend : Product, но это дает мне предупреждение в каждом поле о сокрытии унаследованного члена.

Как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...