#c# #.net
Вопрос:
Я получаю «класс не содержит определения свойства». Потратив свое время на поиск решения, я все еще не знаю, как его решить. Хотя я объявляю в ViewModel, он все равно получает ошибку, что «OrderVm» не содержит определения для «Id». Я немного расстроен этой ошибкой.
OrderRepository.cs
public async Tasklt;IEnumerablelt;OrderVmgt;gt; GetAddressShipping(string userId) { var listOrder = await _dbContext.Orderings .Where(x =gt; x.UserId.Equals(userId)) .AsNoTracking() .ToListAsync(); var listVm = listOrder.Select(x =gt; new OrderVm { Id = x.Id, // this line causes the bug ClientName = x.Name, Address = x.Address, Phone = x.Phone, CreatedAt = x.CreatedAt, }).ToList(); return listVm; }
OrderVm.cs
using System; namespace RookieEShop.Shared { public class OrderVm { public string ClientName { get; set; } public int Phone { get; set; } public string Address { get; set; } public string UserId { get; set; } public DateTime CreatedAt { get; set; } public int Id { get; set; } // The Id property has been declared } }
После запуска файла я получаю сообщение об ошибке ниже:
OrderRepository.cs: ошибка CS0117: «OrderVm» не содержит определения для «Id»
Спасибо за ваше чтение. Надеюсь, я получу решение от вас, ребята.
Обновлено: В viewmodel у меня есть только один класс OrderVm. Класс all viewmodel в моем проекте
Комментарии:
1. Исходя из дедукции, вполне вероятно, что у вас есть несколько
OrderVm
лежащих вокруг. Быстрое решение может бытьnew RookieEShop.Shared.OrderVm
. Однако кто знает, в каком состоянии находятся ваши проекты2. @TheGeneral Спасибо за ваш ответ. На самом деле, в моей модели представления у меня есть только класс OrderVm.
3. Найдите все решение для
OrderVm
… если есть только один, то ваша сборка и исходный код могут быть несинхронизированы. Попробуйте почистить и перестроить.4. @TheGeneral Спасибо за ваше решение. Я попробовал ваше решение, добавив новобранца. Общий. Упорядочить в выбранном. К сожалению, он по-прежнему получает «OrderVm», не содержащий определения ошибки «Id». Это так расстраивает :(.
5. ПРИВЕТ @TheGeneral, я знаю причину, по которой моя программа получает вышеуказанную ошибку. Спасибо, ребята, что помогли мне найти решение.
Ответ №1:
Потратив свое время на выяснение причины моей ошибки, я официально нашел ответ на свою ошибку. В прошлом я снял флажок «Сборка» в проекте «Новобранец».Общий доступ» на страницах свойств решения (Решение-gt;Свойства-gt;gt;Свойства конфигурацииgt;gt;). В результате система не смогла скомпилировать новую переменную в файле, и это вызвало ошибку, которую вы видите в моем вопросе. Когда я понял причину, я выбрал столбец «Сборка» на страницах свойств решения (вы можете видеть рисунок ниже), мой проект работал правильно, как я и ожидал.
Для тех, кто все еще получает мою ошибку, хотя вы следовали моему решению, пожалуйста, проверьте, объявлена ли ваша переменная с ключевым словом public или нет. Если нет, измените свою переменную на общедоступную. Это работает правильно. Страницы свойств решения
Обновление: Поскольку моей репутации недостаточно, чтобы добавить изображение в мой ответ, вы, ребята, можете перейти по ссылке. Извините за неудобства.