Я работаю над платформой доставки, которая в конечном итоге автоматизирует доставку через несколько крупных перевозчиков. У меня есть Usercontrol ShipmentsView, который отображает список отправлений (возвращаемых EntityFramework), и когда пользователь нажимает на элемент отгрузки, он порождает ShipmentEditView и передает ShipmentID (RecordKey) в это представление.
Сначала я пытался получить контекст от родителя (ShipmentsView) и, наконец, отказался от решения вернуться к нему позже. Я хотел сделать это, чтобы сохранить один экземпляр контекста. во всяком случае, теперь я создаю новый экземпляр контекста в моем ShipmentEditViewModel и запрашиваю его для записи отгрузки. Я знаю, что могу просто пропустить запись, но я хотел использовать Ocean Framework, которую написал Карл Шиффлетт, и не хочу прикидываться написанием новых методов перехода.
Так или иначе, я запрашиваю, и при переходе через него я вижу, что он возвращает запись, как только выполнение достигает точки, где он назначил результат запроса свойству e.Result, он выдает следующее исключение в зависимости от запрос, который я использовал.
LINQToEntities
Dim RecordID As Decimal = CDec(e.Argument)
Dim myResult = From ship In _Context.Shipment _
Where ship.ShipID = e.Argument _
Select ship
Select Case myResult.Count
Case 0
e.Result = New Shipment
Case 1
e.Result = myResult(0)
Case Else
e.Result = Nothing
End Select
«LINQ to Entities не распознает метод« System.Object.CompareObjectEqual (System.Object, System.Object, Boolean) », и этот метод нельзя преобразовать в выражение хранилища.
LINQToEntities через вызовы методов
Dim RecordID As Decimal = CDec(e.Argument)
Dim myResult = _Context.Shipment.Where(Function(s) s.ShipID = RecordID)
Select Case myResult.Count
Case 0
e.Result = New Shipment
Case 1
e.Result = myResult(0)
Case Else
e.Result = Nothing
End Select
LINQ to Entities не распознает метод 'SnazzyShippingDAL.Shipment ElementAtOrDefault [Shipment] (System.Linq.IQueryable`1 [SnazzyShippingDAL.Shipment], Int32)', и этот метод нельзя преобразовать в выражение хранилища.
Я пытался заставить эту вещь отображать запись в течение трех дней. я серьезно думаю о возвращении и реинжиниринге его без паттерна MVVM (который, как я понимаю, я только начинаю изучать и понимать), только для того, чтобы заставить & $ ^% ed работать. Любая помощь будет принята с благодарностью.
Cory