Не уверен, что это умно, измена или круто - PullRequest
2 голосов
/ 21 февраля 2011

Итак, у меня уже есть все в моем файле edmx Я создал следующее

 public sealed class ACategory:example.org.Data.Categories
{
    public ACategory()
    {

    }

    public int PostingCount
    {
        get;
        set;
    }
}

Затем я решил выяснить, как выполнить скомпилированный запрос, просто потому что это чертовски круто.

public static Func<MyEntities, IQueryable<ACategory>> GetCategoriesWithPostingCount =
        CompiledQuery.Compile((MyEntities entities) => from category in entities.Categories.Include("Postings_Categories")
                                                               select new ACategory
                                                               {
                                                                   CategoryID =category.CategoryID,
                                                                   ParentCategoryID = category.ParentCategoryID,
                                                                   CategoryName = category.CategoryName,
                                                                   CategoryDescription = category.CategoryDescription,
                                                                   PostingCount = category.Postings_Categories.Count
                                                               });

Это чертовски хорошо работает ... круто, теперь я могу легко это назвать из любого места.

Мой вопрос сейчас такой? Это хороший способ сделать это, или я ошибаюсь в чем-то, что может скрываться за кулисами?

Ответы [ 2 ]

1 голос
/ 21 февраля 2011

Что вы подразумеваете под звонком в любом месте? Вы имеете в виду, что теперь вы можете вызывать через слои, с которыми вы не должны обычно вызывать вашу базу данных?

Я бы сказал, что это плохая практика, и весь доступ к данным должен осуществляться, конечно, в DAL. Обычно считается «хорошей практикой», чтобы ваш DAL передавал только IEnumerables, чтобы обеспечить тот факт, что запросы не могут быть вызваны «по желанию» вниз по линии.

0 голосов
/ 21 февраля 2011

Если вы сделаете это, вы должны раскрыть свой контекст данных.Это не проблема, если вы используете скомпилированный запрос только в своем DAL, но есть над чем подумать.Это краткий способ создания бизнес-объектов!

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