0
4 열이있는 테이블을 반환하는 쿼리 가능한 쿼리 슬롯이 있습니다.필터 열 IQueryable C#
ItemName | 국가 A | 국가 B | 국가 C |
내 앱에는 일부 인증 프로세스가 있으며 일부 사용자에게는 특정 국가 열만 표시되어야합니다.
예를 들어 제 국가와 사용자가 = A에만 표시되어야합니다
항목 이름을 | 국가 A |
열의 이름을 기준으로 열을 필터링하는 방법이 있습니까?
IQueryable<AllCountries> ResultsVM = _context.AllCountries;
var country = IdentityExtensions.GetCountryId(User);
if (country != null)
{
Type elementType = ResultsVM.ElementType;
foreach (PropertyInfo pi in elementType.GetProperties())
{
if (country==pi.Name)
{
ResultsVM= _context.AllCountries
.Select(t => new AllCountries
{
ItemName=t.ItemName,
?? only the column which matches the country
});
}
}
}
지금까지, 내 된 IQueryable의 열이 사용자의 국가에 해당하는 경우 알고 있지만 내가 그것을 표시하는 방법 내 선택에 알고 다른 사람을 제거하지 마십시오 ...
업데이트
의 목록으로 정의되면, 된 IQueryable를 저장하고 내 MVC 웹 프로젝트에서 내보기에 사용됩니다내 뷰 모델 ResultsVM :
public class AllCountries
{
[DisplayName("Item")]
public string ItemName { get; set; }
public int? Country1 { get; set; }
public int? Country2 { get; set; }
public int? Country3 { get; set; }
}
Country + '1'
Country + '2'
Country + '3'
Country + '4'
그런 다음 당신이 만들 수 있습니다는 당신이 그 열이 예에 해당 컬럼의 접미사를 선택하려면 열 이름 접두사 나라와 조건을 고려하면
실뱅
감사합니다. 선택 항목에서 일반 '결과'열 이름 대신 정확한 열 이름 (예 : country2)을 포함하는 결과를 반환하려면 어떻게해야합니까? 내 관점에서 매핑을 만드는 것이 중요합니다. – sylvain77
@ sylvain77 님이 당신이 묻는 것을 얻지 못했습니다. 정교하게 말씀해 주시겠습니까? –
예. 나는 내 질문을 업데이트했다. 내 IList resultsVM 내 질문에 정의 된 클래스를 기반으로해야합니다. 귀하의 예를 들어, "목록"내 칼럼의 제목으로 "country2"로 liResult를 갖는 것일 것입니다. 귀하의 예에서는 "결과"가 아닙니다. 내 견해에 따라 이름을 일관되게 유지해야합니다. – sylvain77