Соединение модели и представления на C# с помощью EF CoreC#

Место общения программистов C#
Ответить
Anonymous
 Соединение модели и представления на C# с помощью EF Core

Сообщение Anonymous »

WorkflowData — это таблица в базе данных
public class WorkflowData : Entity
{
public int Id { get; set; }
// ... others properties
public ICollection WorkflowDataDynamicColumns { get; set; }
}

WorkflowDataDynamicColumn — это представление в моей базе данных.
public class WorkflowDataDynamicColumn
{
public int WorkflowDataId { get; set; }
public string? Value { get; set; }
}

Мне нужно запросить записи WorkflowData и для каждой записи получить ключ этого объекта и список объектов со связями в WorkflowDataDynamicColumn – как я могу это сделать это?
Я пробовал использовать этот код, но он не работает:
var query = _context.WorkflowDatas
.AsNoTracking()
.Include(x => x.WorkflowStatus)
.Include(wd => wd.WorkflowDataDynamicColumns)
.Where(x => x.WorkflowStatus != null)
.Select(wd => new WorkflowDataDto
{
Id = wd.Id,
WorkflowStatus = wd.WorkflowStatus == null ? null : _mapper.Map(wd.WorkflowStatus),
FormColumn = wd.WorkflowDataDynamicColumns
.Select(dc => new WorkflowDataFormColumnDto
{
Id = dc.Id,
Value = dc.Value ?? string.Empty,
}).ToList()
})
.ToListAsync();

Сообщение об ошибке:

Невозможно определить связь, представленную навигацией «WorkflowData.WorkflowDataDynamicColumns» типа «ICollection». . Либо настройте связь вручную, либо игнорируйте это свойство с помощью атрибута «[NotMapped]» или с помощью «EntityTypeBuilder.Ignore» в «OnModelCreating».

Вот полезная нагрузка, которая мне нужна:
{
"id": 21094,
"workflowStatus": { ... }
"formColumn": [
{
"id": 1,
"value": "abc"
},
{
"id": 2,
"value": "def"
},
...
]
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... th-ef-core
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»