код
(Incident)(rdc.Incidents.Where(i =>i.ID == ID))
возвращает последовательность, IEnumerable<Incident>
, и вы пытаетесь привести ее к типу Incident. Вот почему вы получаете InvalidCastException, потому что эти типы несовместимы. Как предложил Мехрдад, вы можете использовать First. Однако First выдаст исключение, если последовательность не содержит никаких элементов. Это может или не может быть желательным. Если исключение нежелательно, вы можете вызвать DefaultOrEmpty, который будет возвращать значение по умолчанию для этого типа, если последовательность не содержит элементов. Если Инцидент является ссылочным типом, значением по умолчанию будет ноль, и вам следует добавить нулевую проверку в ваш код и соответствующим образом обработать этот случай.