Я использую 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; }
}
Каков наилучший подход для выбора связанной сущности (клиента) с сайтами клиентов?