Не существует свойства HasValue для значения nullable int для поставщика типа ODataService.

Я пытаюсь использовать поставщика типа ODataService с Netflix. Это отлично работает:

type internal NetflixData = ODataService<"http://odata.netflix.com/Catalog/">
let internal NetflixContext = NetflixData.GetDataContext()

let godzillamovies = query { for t in NetflixContext.Titles do 
                             where (t.Name.Contains "Godzilla")
                             select (t.Name, t.ReleaseYear)
                           } |> Seq.toList

но возвращает все эпизоды телешоу Годзиллы без даты выпуска (бу). Итак, я обновляю свой запрос до:

let godzillamovies = query { for t in NetflixContext.Titles do 
                             where (t.Name.Contains "Godzilla" && t.ReleaseYear.HasValue)
                             select (t.Name, t.ReleaseYear.Value)
                           } |> Seq.toList

И я столкнулся со следующей ошибкой:

<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>
<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">
  <code></code>
  <message xml:lang=\"en-US\">No property 'HasValue' exists in type 'System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' at position 45.</message>
</error>

Э-э, HasValue не существует для обнуляемых целых чисел? С тех пор как?


person rachel    schedule 12.01.2013    source источник


Ответы (1)


person    schedule
comment
Мне пришлось переключить выбор на select (t.Name, t.ReleaseYear.Value), но отлично, спасибо. - person rachel; 13.01.2013