Я предполагаю, что может быть более одного модуля на поле.
Запрос:
SELECT mf.submoduleid, f.id, f.name
FROM field AS f, modulefield AS mf
WHERE f.ismodule = 1 AND
f.id = mf.fieldid
EF Linq выражение:
List<FieldDTO> result = _context.Fields
.Include("ModuleField")
.Where(f => f.ismodule == true)
.Select(f => new FieldDTO(){
ModuleFieldModuleId = f.ModuleField.moduleid,
FieldId = f.id,
FieldName = f.Name})
.ToList();
ModuleField - свойство навигации в классе поля.
EDIT:
Модели:
public class Field
{
[Key]
public long Id { get; set; }
public string FieldName { get; set; }
[NotMapped]
public bool IsModule
{
get
{
return this.Module != null;
}
}
public virtual Module Module {get; set;}
}
public class Module
{
[Key]
public long Id { get; set; }
public string ModuleName { get; set; }
public virtual IEnumerable<Field> Fields { get; set }
}
При создании модели:
modelBuilder.Entity<Field>()
.HasOptional(s => s.Module); // Marking property optional
Получение Module.ModuleId, если IsModule of Field имеет значение true:
List<FieldDTO> result = _context.Fields
.Include("Module")
.Where(f => f.IsModule == true)
.Select(f => new FieldDTO(){
ModuleFieldModuleId = f.Module.Id,
FieldId = f.Id,
FieldName = f.Name})
.ToList();