Я хочу получить записи из базы данных с помощью динамической библиотеки Linq NuGet . Как я могу написать запрос для выбора родительских записей вместе со списком дочерних записей. Например, существует связь «один ко многим» между таблицей вопросов и ответов. QuestionID — это столбец внешнего ключа в таблице ответов.
Это очень просто, если я укажу имя столбца в предложении where, когда я не собираюсь использовать библиотеку Dynamic Linq NuGet.
var LinQResult=db.Questions
.Include(f=>f.Answers).Where(f=>f.Email=="someEmail").ToList();
У меня нет вопросов по вышеуказанному запросу, и я могу просто отображать содержимое в представлениях бритвы или любых веб-формах.
Если я собираюсь использовать библиотеку Dynamic Linq NuGet, у меня есть критерии поиска в строковом формате, как показано ниже,
string SearchCreteria = "Email=\"SomeValue\"";
Передавая вышеуказанные критерии динамического поиска в предложении where ниже,
var QueryBuilder = (from q in db.Questions
join a in db.Answers on q.QuestionID equals a.QuestionID into answer
from a in answer.DefaultIfEmpty()
select new { q,a}).Distinct().AsQueryable();
var Result = QueryBuilder.Where(SearchCreteria);
Как я могу преобразовать/добавить приведенный выше результат в строго типизированный список ниже
List<QuestionVM> questionVM=new List<QuestionVM> ();
public class QuestionVM
{
public Question Question { get; set; }
public List<Answer> Answers { get; set; }
}