Я не уверен, возможно ли это с Entity Framework, но я дублирую слишком много объектов, заполняющих код.
В настоящее время мои методы делают что-то вроде:
return (from s in context.some_table
join u in context.user_table on s.user_id equals u.id
where s.id == someId
select new MyObject()
{
TableColumn = s.some_column,
User = new MyUser()
{
Username = u.username,
Id = u.id,
}
}.FirstOrDefault();
Iпросто напечатал это в качестве примера.У меня много запросов, где я включаю информацию о пользователе (больше, чем просто в этом примере).Таким образом, во все мои запросы я помещаю один и тот же кусок кода. Если у меня есть 100 методов с этим фрагментом кода, и я хочу добавить еще один возвращаемый столбец, то мне нужно обновить 100 методов.Боль в заднице.
Я бы хотел, чтобы объект User был заполнен методом многократного использования.Таким образом, добавление / удаление возвращаемых столбцов необходимо изменить только в одном месте.Например:
return (from s in context.some_table
join u in context.user_table on s.user_id equals u.id
where s.id = someId
select new MyObject()
{
TableColumn = s.some_column,
User = FillUser(u)
}.FirstOrDefault();
FillUser будет методом.Конечно, это не работает с Entity Framework.
Могу ли я что-нибудь сделать вообще?Я, конечно, мог бы вернуть всю пользовательскую таблицу, но это намного больше информации, чем мне нужно, так что это пустая трата.
Я использую .NET 4.0, если это помогает.