클래스의 속성 목록을 함수에 전달하려고합니다. 속성 목록에 기반한 함수에서 쿼리를 생성 할 것입니다. Linq Select 메서드에서 정확히 같은 기능으로. 여기 Ingress 데이터베이스 용으로 구현할 것입니다. 예를 들어 Linq 표현식을 함수에 전달
, 프론트 엔드의나는이 같은 선택을 실행 싶어,
내 엔티티 클래스 I이 같은 선택 함수를 호출 싶어이
public class Customer
{
[System.Data.Linq.Mapping.ColumnAttribute(Name="Id",IsPrimaryKey=true)]
public string Id { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Name")]
public string Name { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Address")]
public string Address { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Email")]
public string Email { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Mobile")]
public string Mobile { get; set; }
}
처럼,
var result = dataAccessService.Select<Customer>(C=>C.Name,C.Address);
결과를 사용하면 이름 및 주소 속성 값을 얻을 수 있습니다.
나는 내 선택 기능을해야는 다음과 같습니다 생각(* 나는이의 LINQ 표현을 사용하여 수행한다고 생각합니다. 그러나 입력 매개 변수이며, 반환 형식 확실하지 메신저. *)
Class DataAccessService
{
// I'm not sure about this return type and input types, generic types.
public TResult Select<TSource,TResult>(Expression<Func<TSource,TResult>> selector)
{
// Here I wanna Iterate through the property list, which is passed from the caller.
// Here using the property list,
// I can get the ColumnAttribute name value and I can generate a select query.
}
}
이것은 Linq와 같은 기능을 생성하려는 시도입니다. 그러나 나는 Linq Expressions의 전문가가 아닙니다.
MIT의 프로젝트 전화 DbLinq이 있지만 큰 프로젝트이지만 여전히 도움이되는 것은 없습니다.
누구든지 나를 시작할 수 있도록 도와 주시겠습니까? 아니면 다른 사람이 나에게 유용한 정보를 읽어 줄 수 있습니까?
달성하고자하는 것이 확실하지 않습니다 ... 모든 고객의 이름과 주소를 원하십니까? –
Kalin, 내 Select 메서드에서 전달 된 poperty 목록을 반복하고 싶습니다. 필자의 예에서는 이름과 주소 속성 만 제공해야합니다. – Sency
당신은 당신이 무엇인가하고 싶은 _how_을 묘사합니다. 왜 그것을하고 싶은지, 즉 달성하고자하는 것을 묘사 해 주시겠습니까? –