Как мне справиться с итерацией по сущности один-ко-многим (или нулю), когда есть нулевая / нулевая запись?

Ваше выражение в выражении также удаляет любые точки (.). Это приведет к потере любых поплавков. Если вы хотите включить float, вам нужно добавить . в ваше регулярное выражение.

Тогда вам нужно всего лишь проанализировать ваш текст, чтобы он плавал, и проверить, меньше ли это max float.

Образец

handleTextChange = (text) => {
    const newAmount = parseFloat(text.replace(/[^1-9.]/g, ''));
    this.setState({
      billAmount: newAmount > 10000 ? '9999.99' : newAmount + ''
    });
  }
0
задан Dev X 19 January 2019 в 16:40
поделиться

2 ответа

Можете ли вы попробовать адрес следующим образом:

Address = x.Address?.FirstLine + " " + x.Address?.SecondLine, 

Если вы не хотите пробелов, попробуйте, как показано ниже:

Address = x.Address == null ? null : (x.Address.FirstLine + " " + x.Address.SecondLine), 
0
ответ дан sri harsha 19 January 2019 в 16:40
поделиться

Как я сказал в комментарии, вы должны сделать это в одном утверждении:

vm.List = _context.Person
    .Select(p => new IndexListItem
    {
        Name = p.Name,
        Address = p.Address.FirstLine + " " + p.Address.SecondLine,
        ID = p.ID
    }).ToList();

Это имеет два преимущества:

  1. Он переведен на SQL, так что только четыре обязательные поля извлекаются из базы данных (что существенно отличается от более широких записей).
  2. EF будет генерировать SQL, который принимает нулевые значения.

Если вы не хотите, чтобы " " в результате вы могли сделать ...

Address = (p.Address.FirstLine + " " + p.Address.SecondLine).Trim()

... или ...

Address = p.Address.FirstLine != null ? p.Address.FirstLine + " " : "")
    + p.Address.SecondLine

Но я не думаю, что это имеет большое значение для просмотра данных.

0
ответ дан Gert Arnold 19 January 2019 в 16:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: