Я новый в структуре Entity (я использую 6.0, но если мне нужно, я могу обновить), я ищу способ привязать сущность к запросу linq. Например, у меня есть:Entity Framework привязать объект к запросу linq
public class User
{
public string Name {get;set;}
public WorkPlace Place {get;set;}
public bool IsAlive{get;set;}
}
public class WorkPlace
{
public string Name {get;set;}
public bool IsActive {get;set;}
public Collection<User> Users;
}
Оба они отображаются на таблицы в базе данных, и у меня есть OnModelCreating
:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().ToTable(tableName: "users");
modelBuilder.Entity<WorkPlace>().ToTable(tableName: "workplaces");
}
Но мне нужно использовать другой объект (с навигацией и отложенной загрузки):
public class CustomUser
{
public string Name {get;set;}
public CustomWorkPlace Place {get;set;}
}
public class CustomWorkPlace
{
public string Name {get;set;}
public Collection<CustomUser> Users;
}
someBuilder.Entity<CustomUser>().ToLinq(cntx => cntx.Set<User>().Where(user => user.IsAlive)).MapProperties();
// the way of mapping properties is not important
someBuilder.Entity<CustomWorkPlace>().ToLinq(cntx => cntx.Set<WorkPlace>().Where(place => plase.IsActive)).MapProperties()
и самое интересное из этого происходит через навигацию, когда я получаю компанию из пользователей, я не должен получить компанию, которая не является активным, и то же самое для ком pany - я не должен получать CustomUser
, который отображается неактивным пользователем.
Большое спасибо
В чем вопрос? – Kinetic
Как я могу реализовать эту логику (получение моих пользовательских объектов из контекста) с помощью фреймворка сущности или расширения расширений. – VVildVVolf
Просто используйте свой обычный объект для загрузки данных и создания пользовательского оттуда, нет? – Kinetic