Есть ли способ создать автопроекцию в рамках сущности?см. пожалуйста:
public class Person{
public int Id {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
public string FatherName {get; set;}
public string City {get; set;}
public string AddressLine {get; set;}
public string Something {get; set;}
}
public class PersonNameModel{
public string FirstName {get; set;}
public string LastName {get; set;}
public string FatherName {get; set;}
}
public class PersonAddressModel{
public string City {get; set;}
public string AddressLine {get; set;}
}
// etc...
Я имею в виду, что смогу заменить нормальную проекцию следующим образом:
context.Persons.Select(t => new PersonNameModel{ FirstName = t.FirstName /* etc */ });
с помощью метода расширения, который может использовать отражение и создать автоматическую проекцию, например:
public static class MyExtensions{
public static IQueryable<T> AutoSelect<T, TProject>(this IQueryable<T> q){
// read TProject type in reflection
// create a projection as a IQueryable<T>
}
}
Есть ли способ?Я прогуглил это, но не нашел никакого ресурса.Можете ли вы вести меня, пожалуйста?