我有一個使用實體框架來獲取數據的ASP.NET MVC應用程序。如何重用實體框架中的投影?
我需要傳遞他們查看之前的entites轉化爲模型。預測可能非常複雜,但爲了保持簡單:
public static IQueryable<UserModel> ToModel(this IQueryable<User> users)
{
return from user in users
select new UserModel
{
Name = user.Name,
Email = user.Email,
};
}
這可以在控制器中使用這樣的:
return View(Repository.Users.ToModel().ToList());
非常好。但是如果我想在另一個裏面使用這個投影呢?例如:
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().
};
}
(讓我們假設博客可以有一個以上的作者,它的類型是用戶的)。
我可以以某種方式分開的預測和重用他們另一個者裏面?
請訪問http:// stackoverflow.com/a/11679134/861716。 – 2012-08-15 22:35:26