#c# #entity-framework
#c# #entity-framework
Вопрос:
Я пытаюсь получить строку из моей базы данных
var listItem = ctx.wc_duty_list.FirstOrDefault(x => x.DutyId == param.DutyId);
Вот файл cs таблицы, созданный EF
public partial class wc_duty_list
{
public int DutyId { get; set; }
public string AircraftRegistration { get; set; }
public Nullable<int> Priority { get; set; }
public string Description { get; set; }
public string CreatedByStaffCode { get; set; }
public Nullable<System.DateTime> CreatedTime { get; set; }
public string StartedByStaffCode { get; set; }
public Nullable<System.DateTime> StartedTime { get; set; }
public string ClosedByStaffCode { get; set; }
public Nullable<System.DateTime> ClosedTime { get; set; }
public Nullable<int> WorkcardUnscheduledId { get; set; }
public Nullable<int> WorkcardScheduledId { get; set; }
public string AssignedStaffCode { get; set; }
public Nullable<System.DateTime> AssignedTime { get; set; }
public Nullable<int> PackageCheckId { get; set; }
public Nullable<int> Status { get; set; }
public byte[] Concurrency { get; set; }
public Nullable<int> DutyPriviledgeId { get; set; }
public Nullable<int> DutyScopeId { get; set; }
public Nullable<int> AtaId { get; set; }
public Nullable<int> DutyListTagId { get; set; }
public Nullable<int> PackageId { get; set; }
public Nullable<int> WorkcardInhouseId { get; set; }
public string AirportCode { get; set; }
public Nullable<int> Workcard3rdId { get; set; }
public string Note { get; set; }
public Nullable<int> DutyActionId { get; set; }
public Nullable<int> SignatureStatus { get; set; }
public virtual wc_duty_action wc_duty_action { get; set; }
public virtual ev_wc_dutylist_details ev_wc_dutylist_details { get; set; }
public virtual wc_duty_list_priority wc_duty_list_priority { get; set; }
}
При запуске моего кода я получаю эту ошибку:
Не могли бы вы указать мне правильное направление? 🙂
Приветствия!
Комментарии:
1. не могли бы вы поделиться тем, как вы сопоставляете этот класс со своей таблицей базы данных.
2. разве он не сопоставлен по умолчанию с Entity Framework?
3. Вам необходимо указать ключ и таблицу для каждого объекта. Такого рода ошибки возникали, когда отображение было настроено неправильно или столбец (который, как предполагается, EF), сопоставленный со свойством, не существует в таблице. Другие сценарии — это когда вы используете навигацию по свойствам и отложенную загрузку, но вообще плохо настроены.
Ответ №1:
Вы ищете Where() вместо FirstOrDefault();
var listItem = ctx.wc_duty_list.Where(x => x.DutyId == param.DutyId).FirstOrDefault();
FirstOrDefault возвращает экземпляр определенных элементов в перечислимом. Где ограничивает исходный список элементами, которые соответствуют указанным критериям.