Я просто открываю LINQ и нахожу его великолепным. Одна из проблем заключается в том, что мне нужно скопировать много полей во время обновления в 3-уровневом (слойном) приложении. Алгоритм, который я использовал, показывает типичное обновление класса LINQ.
- Я получаю объект
FromPresentation
из уровня представления.
- Я использую LINQ для получения объекта с таким же идентификатором из базы данных.
- Я меняю много полей
- Сохранить изменения.
и соответствующий код:
using (var ctx = new AppDataDataContext())
{
var OBJ =
(from Usu in ctx.usuarios
where Usu.ID == FromPresentation.ID
select Usu).SingleOrDefault();
if (OBJ != null)
{
OBJ.Nome = FromPresentation.Nome;
OBJ.NomeCurto = FromPresentation.NomeCurto;
OBJ.Login = FromPresentation.Login;
OBJ.Senha = FromPresentation.Senha;
OBJ.SuperUsuario = FromPresentation.SuperUsuario;
OBJ.Ativo = FromPresentation.Ativo;
// a lot more fields
ctx.SubmitChanges();
return OBJ.ID;
}
}
Проблема в том, что у меня много полей. Я даже пытался использовать отражение (, используя этот вопрос для руководства ), чтобы скопировать поля, но LINQ не уведомляется об изменениях, поэтому ничего не сохраняет.
Как использовать отражение для копирования значений в объект LINQ, чтобы его можно было обновлять в базе данных?