Код: Выделить всё
var possibleNames = await Article.Select(x => x.Name).Distinct().ToListAsync();
Код: Выделить всё
var articles = await Article.Where(x => x.Name == name).ToListAsync();
У меня есть приложение, в котором есть 3 класса для каждой модели.
- < li>Модель базы данных для взаимодействия с базой данных
- Модель DTO для внутреннего использования в приложении
- Модель представления для отправки через HTTP-запрос
Код: Выделить всё
Enum Type {
Magazine,
Store
}
public class ArticleDB
{
public int Id { get; set; }
public string Name { get; set; }
public int LengthInMM { get; set; }
public bool MagazineRack { get; set; }
public bool StoreRack { get; set; }
public ArticleDB(ArticleDTO dto)
{
Id = dto.Id;
Name = dto.Name;
lengthInMM = dto.LengthInMM;
MagazineRack = dto.StoredIn == Type.Magazine;
StoreRack = dto.StoredIn == Type.Store;
}
public ArticleDTO ToDTO() => new ArticleDTO()
{
Id = Id,
Name = Name,
LengthInMM = LengthInMM,
StoredIn = MagazineRack ? Type.Magazine : Type.Store
}
}
public class ArticleDTO
{
public int Id { get; set; }
public string Name { get; set; }
public int LengthInMM { get; set; }
public Type StoredIn { get; set; }
}
public class ArticleView
{
public int Id { get; set; }
public string Name { get; set; }
public int LengthInM { get; set; }
public string StoredIn { get; set; }
public ArticleView(ArticleDTO dto)
{
Id = dto.Id;
Name = dto.Name;
LengthInM = dto.LengthInMM / 1000;
StoredIn = dto.StoredIn.ToString();
}
public ArticleDTO ToDTO() => new ArticleDTO()
{
Id = Id,
Name = Name,
LengthInMM = LengthInM * 1000,
StoredIn = StoredIn == "Magazine" ? Type.Magazine : Type.Store
}
}
Прямо сейчас, если я хочу отфильтровать lengthInM, мне нужно преобразовать это значение в трех разных областях: при получении значений, при получении возможных значений, при фильтрации по значению. А для StoredIn также потребуется выполнить пользовательскую проверку в трех разных местах.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -values-us