有人编辑连接表,因为我不记得表中的单词,该表只包含 2 个实体的 2 个外键。编辑:我认为它被称为链接表?
db-model 看起来像这样 DB-Model entities。在模型和 DTO 的代码中,datadock 有一个 List<Standard>
。所以代码看起来像这样:
private List<DatadockDTO> GetDatadocksByDataportId(Guid id)
{
var query = from r in _ddRepository.GetIQueryable()
where r.DataportId == id
select new DatadockDTO
{
Id = r.Id,
Name = r.Name,
Standards = r.Standards //Error not possible, the only suggestion it gives is DataDockStandards
//I used to put GetStandardsByDatadockId(r.Id) here but there is another way apparently
};
List<DatadockDTO> datadocks = query.ToList();
return datadocks;
}
但与我共事的人告诉我 Entity Framework 允许你做类似的事情。但我不知道该去哪里找。
我认为它应该如何工作的额外代码:
private List<StandardDTO> GetStandardsByDatadockId(int id)
{
var query = from r in _standardRepository.GetIQueryable()
where r.DataDockStandards.Any(dds => dds.DatadockId == id)
select new StandardDTO
{
Id = r.Id,
Name = r.Name,
StandardVersions = GetStandardVersionsByStandardId(r.Id)
};
List<StandardDTO> standards = query.ToList();
return standards;
}
private List<StandardVersionDTO> GetStandardVersionsByStandardId(int id)
{
var query =
from r in _svRepository.GetIQueryable()
where r.StandardId == id
select new StandardVersionDTO
{
Id = r.Id,
Name = r.Name,
};
List<StandardVersionDTO> versions = query.ToList();
return versions;
}
编辑(第二天):好吧,显然我可以以某种方式选择 r.Standards。我没有改变任何东西,我突然可以选择 r.Standards 而不会出错......