Лямбда-выражение для вызова Icollection<> из дочернего классаC#

Место общения программистов C#
Ответить
Anonymous
 Лямбда-выражение для вызова Icollection<> из дочернего класса

Сообщение Anonymous »

У меня 3 класса.
  • Заголовок
  • Свойство
  • Единицы
Класс заголовка имеет отношение один ко многим с классом свойства, а класс свойства имеет отношение один ко многим с классом единиц.
DTO заголовка:
public class HeaderDTO
{
public string Phone { get; set; } = null!;

public string? Source { get; set; }

public string? Address { get; set; }

public string? Country { get; set; }

public string? ShipTo { get; set; }

public virtual ICollection
Properties { get; set; } = new List();
}

DTO свойства:
public class PropertyDTO
{
public string? Floor { get; set; }

public string? Area { get; set; }

public int Window { get; set; }

public string Products { get; set; } = null!;

public string? Login { get; set; }

public string? ShipTo { get; set; }

public int? Flag { get; set; }

public virtual ICollection Units { get; set; } = new List();
}

Единицы DTO:
public class UnitDTO
{
public string? UniqueName { get; set; }

public int Height { get; set; }

public int Width { get; set; }

public int Panel { get; set; }

public int? Belah { get; set; }

public string? Img1 { get; set; }

public string? Img2 { get; set; }

public string? Img3 { get; set; }

public List? products;
}

Мне нужно опубликовать несколько записей JSON свойств и единиц измерения.
Как я могу выполнить итерацию по классу единиц измерения.
Я пробовал для вызова функции Include, но она недопустима в данном контексте.
Любые рекомендации по решению этой проблемы будут очень признательны. :)
[HttpPost("SOPPOST")]
public async Task CreateHeaders(HeaderDTO hdto)
{
var newHeader = new TDataHeader
{
Address = hdto.Address,
Country = hdto.Country,
Phone = hdto.Phone,
ShipTo = hdto.ShipTo,
Source = hdto.Source
};
var property = hdto.Properties.Select(w => new TDataProperty
{
Floor = w.Floor,
Area = w.Area,
Window = w.Window,
Flag = w.Flag,
Login = w.Login,
Products = w.Products,
ShipTo = w.ShipTo,
Header = newHeader,
}).ToList();
var phoneVerify = _context.TDataHeaders.FirstOrDefaultAsync(x => x.Phone == hdto.Phone);
_context.TDataHeaders.Add(newHeader);
_context.TDataProperties.AddRange(property.ToList());
await _context.SaveChangesAsync();
return Ok(await _context.TDataHeaders.ToListAsync());
}


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

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

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

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

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

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