У меня есть выражение LINQ:Используя специальный метод в LINQ к Entities
var users = db.Relationships.Where(i => i.RelationshipId== relId)
.Select(s => s.User).Distinct().Select(s => new UserViewModel() {
Username = s.Username,
LastActiveDateTime = s.LastActive, // DateTime, I want it to be a string filtered through my custom GetFriendlyDate method
}).ToList();
// convert all DateTimes - yuck!
foreach (var userViewModel in users) {
userViewModel.LastActive = DateFriendly.GetFriendlyDate(userViewModel.LastActiveDateTime);
}
Это решение работает, но он чувствует себя неправильно
- должны перебрать все
users
после получения их от db, просто переформатировать свойство на каждом отдельном - имеют свойство DateTime на моей модели ViewModel только для того, чтобы впоследствии его можно было преобразовать в строку и никогда не касаться снова
Есть ли способ использовать метод GetFriendlyDate
непосредственно в запросе?
И вы знаете, что смешно? Многие думают, что они могут тестировать EF-код. Они создают поддельный контекст db в IDbSet в памяти и пишут код, как указано выше, и он проходит тест. Но на производстве ... :) –