Я метода следующий репо:Не удается получить мои отношения метод хранилища работать
public class EFX_YRelationshipRepository : IX_YRelationshipRepository
{
private EFDbContext context = new EFDbContext();
public IQueryable<X_YRelationship> Relationships
{
get
{
return context.X_Ys;
}
}
public IQueryable<X> GetAsByYID(int yID)
{
IQueryable<X>xs =
from x in context.Xs
join r in Relationships on c.XID equals r.XID
join y in context.Ys on r.YID equals y.YID
where y.YID == yID
select new X();
return xs;
}
...
Я зову его из моего контроллера:
public ActionResult ListByY(int yID, int page = 1, string sort = "Name", bool desc = false)
{
IEnumerable<X> xsByY = xRelationshipRepository.GetXsByYID(yID);
ListViewModel<X> model = new ListViewModel<X>
{
Items = xsByY
.Skip((page - 1) * PageSize)
.Take(PageSize),
PagingInfo = new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = xsByY.Count(),
Sort = sort,
Desc = desc
}
};
return View("_List", model);
}
Я получаю ошибку:
The entity or complex type 'Something.Domain.Concrete.X' cannot be constructed in a LINQ to Entities query.
для линии:
Line 79: ListViewModel<X> model = new ListViewModel<X>
Что я делаю неправильно?
Боковые ноты:
public class EFDbContext : DbContext
{
public DbSet<Y> Ys { get; set; }
public DbSet<X> Xs { get; set; }
public DbSet<X_YRelationship> Xs_Ys { get; set; }
}
КОНТЕКСТ:
Контекст этого вопроса является то, что у меня есть 3 таблицы базы данных: Xs Ys и X_Ys (это таблица отношения кстати)
Я хочу иметь список Xs, которые были связаны с Y ... Так что я сделал 3 dbSets и отношения reposi который содержит функцию, которая будет делать это.
Этот репозиторий имеет один dbContext ... и функция просто должна вернуть эти Xs на мой контроллер, чтобы я мог подтолкнуть их к моему представлению.
Я получаю: Недопустимое имя объекта 'dbo.X_YRelationship'. Я добавил дополнительную информацию к исходному вопросу, включая класс EFDbContext и метод отношений моего репозитория. – Jimmyt1988
Отредактированный мой ответ ... –
К вашему ответу у меня есть существующая база данных, которую я просто планирую с помощью классов ... База данных (SQL) имеет внешние ключи, но не внутри самих классов. Мои отношения также много для многих ... Я действительно хотел бы использовать объединения. – Jimmyt1988