Ho un'applicazione ASP.NET MVC che utilizza Entity Framework per ottenere dati.Come riutilizzare le proiezioni in Entity Framework?
Devo trasformare le Entità in Modelli prima di passarle a Visualizza. Sporgenze possono essere molto complessa, ma per mantenerlo semplice:
public static IQueryable<UserModel> ToModel(this IQueryable<User> users)
{
return from user in users
select new UserModel
{
Name = user.Name,
Email = user.Email,
};
}
Questo può essere utilizzato in un controllore simili:
return View(Repository.Users.ToModel().ToList());
molto buona. Ma cosa succede se voglio usare questa proiezione in un altro? Esempio:
public static IQueryable<BlogPostModel> ToModel(this IQueryable<BlogPost> blogs)
{
return from blogs in blogs
select new BlogPostModel
{
Title = blog.Title,
Authors = blog.Authors.AsQueryable().ToModel(), // (entities are POCOs)
// This does not work, because EF does not understand method ToModel().
};
}
(supponiamo che il blog possa avere più di un autore ed è di tipo Utente).
Posso in qualche modo separare le proiezioni e riutilizzarle all'interno di altre?
See http: // stackoverflow.com/a/11679134/861716. –