О Entity Framework сгенерированном SQL и ViewModel - PullRequest
1 голос
/ 18 июля 2011

Я использую ASP.MVC / EF в своем проекте.

Модель домена, как показано ниже:

public class Post
{
     public int Id {get;set;}
     public string Abstract {get;set;}
     public string Content {get;set;}
}

, а модель представления -

public class PostListView
{
     public int Id {get;set;}
     public string Abstract {get;set;}
}

statemensв действии, чтобы получить модель:

 db.Posts.Where(...).Select(p=>new PostListView
 {
       Id = p.Id,
       Abstract = p.Abstract
 });

Когда я проверяю SQL, сгенерированный Entity Framwork, оператор select включает все три столбца.Есть ли способ заставить EF генерировать более эффективные операторы SQL, которые выбирают только поля, необходимые для модели представления?

Спасибо!

1 Ответ

1 голос
/ 18 июля 2011

Вы можете сделать это

 var postQuery = from p in db.Posts
                                      select new { p.Id,p.Abstract};

И перечислите коллекцию

foreach (var p in postQuery  ){
// fill your view model here

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...