MVC3 выбирает один-много связанных данных, используя Entity Framework 4 - PullRequest
0 голосов
/ 14 июля 2011

Я использую MVC3 с платформой сущностей 4 и шаблоном хранилища и ищу советы по наилучшему подходу для выбора связанных сущностей.

Я читал следующие уроки

http://www.asp.net/entity-framework/tutorials/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application

Поскольку здесь не используется шаблон репозитория, это немного сбивает с толку для меня понимания, как это настроить, дляНапример, этот код включен в контроллер (в приведенном выше примере),

public ViewResult Index()
{
var instructors = db.Instructors.Include(i => i.OfficeAssignment);
return View(instructors.ToList());
}

Я использую репозиторий с интерфейсом ICustomerRepository и конкретную реализацию интерфейса.Где я должен построить запрос LINQ с помощью оператора include, если я пытаюсь сделать это в реализации моего репозитория (что, как я полагаю, это то место, куда он должен идти, чтобы поддерживать контроллер в чистоте), я получаю ошибки, утверждая, что не могу преобразовать лямбда-выражениенабрать строку.

Этот код в настоящее время находится в моей реализации репозитория,

namespace CustomerOrders.Domain.Concrete
{
    public class EFCustomerSiteRepository : ICustomerSiteRepository
    {
        private EFDbContext context = new EFDbContext();

        public IQueryable<CustomerSite> CustomerSites
        {
            get { return context.CustomerSites; }
        }
    }
}

Это моя сущность, которая включает свойство навигации для клиентов.

namespace CustomerOrders.Domain.Entities
{
    public class CustomerSite
    {
        public int CustomerSiteId { get; set; }
        public int CustomerId { get; set; }
        public string AddressLine1 { get; set; }
        public string AddressLine2 { get; set; }
        public virtual Customer Custs { get; set; }

    }
}

И это мойКонтекст Entity Framework

public class EFDbContext : DbContext
{
    public DbSet<Customer> Customers { get; set; }
    public DbSet<CustomerSite> CustomerSites { get; set; }
}

Каков наилучший подход для выбора связанной сущности (клиента) с сайтами клиентов?

1 Ответ

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

Я полагаю, что вы получили ответ на этот вопрос в своем другом вопросе здесь

Однако размещение включающего кода в репозитории было бы лучшим способом сохранить как можно больше логики домена вне контроллера.

...