bir SelectList oluşturmak yöntemleri I Sonra Bence üzerine geçmek zaman DB veri almak ve (bir "tüm" seçeneği da dahil) bir doldurulan SelectList nesnesi geri aşağıdaki iki yöntem vardır. Sorun, bunların hem farklı depo nesnelerine erişimlerinin hem de farklı ID adlarına (StatusId ve TeamId) sahip olmaları istisnasıyla neredeyse aynı olmalarıdır. Ben bir parametre olarak depo kabul eder ve her nasılsa kimlik adı belki yansıması veya lambda ifadesi çeşit kullanarak, ne olması gerektiğini anlamadan tek yöntem haline bunları refactor için bir fırsat olduğunu düşünüyorum, ama oldukça bilmiyorum Bunu gerçekleştirmek için.Refactor İkisi, tek bir yöntem
private SelectList GetStatusSelectList(int selectedStatusId)
{
List<MemberStatus> statusList = _memberStatusRepository.All().ToList();
statusList.Insert(0, new MemberStatus {StatusId = 0, Name = "All"});
var statusSelectList = new SelectList(statusList, "StatusId", "Name", selectedStatusId);
return statusSelectList;
}
private SelectList GetTeamSelectList(int selectedTeamId)
{
List<MemberTeam> teamList = _memberTeamRepository.All().ToList();
teamList.Insert(0, new MemberTeam { TeamId = 0, Name = "All" });
var teamSelectList = new SelectList(teamList, "TeamId", "Name", selectedTeamId);
return teamSelectList;
}
Bunların nasıl tek bir yöntemle yeniden düzenleneceğini anlamaya yardımcı olan var mı?
Bu sınıfları düzenleyebilir misiniz, arayüz ekleyebilir misiniz? –
Evet ... hem _memberTeamRepostiory hem de _memberStatusRepository, bir IRepository arabirimini uygular. Bu arabirim, DB ile etkileşime girecek tüm yöntemlere sahiptir ve IQueryable Tümü() ile birlikte verilen TEntity'nin _dbSet'ini döndürür. –
bigmac
Nasıl MemberTeam ve MemberStatus hakkında - bunları doğrudan veya kısmi sınıflarla değiştirebilir misiniz? – foson