Entity Framework i pobranie z daty jedynie godziny

0

Witam,
mam w bazie kolumnę (typu DateTime), w której zapisywana jest data w formacie yyyy-MM-dd HH:mm:ss (np. 2014-02-10 12:00:00).

Korzystam z WPF ora Entity Framework i pobieram dane w ten sposób (wyświetlam je w DataGrid):

var AutoLot = new AutoLotEntities();             
var query = (from p in AutoLot.KALENDARZ
             select
                 new
                 {
                     Start = p.DATA_START,
                     Opis = p.OPIS
                 }).Take(5).ToList();

DataGrid1.ItemsSource = query;

Mój DataGrid wygląda tak:

<DataGrid x:Name="DataGrid1" AutoGenerateColumns="False" RowBackground="#FF3F5DAE" AlternatingRowBackground="#FF1A7DB6">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Start}" Foreground="#FFFFFFFF" Header="Start" CanUserResize="False" Width="*"/>
        <DataGridTextColumn Binding="{Binding Opis}" Foreground="#FFFFFFFF" Header="Opis" CanUserResize="False" Width="*"/>
    </DataGrid.Columns>
</DataGrid>

Co powinnam zmienić, żeby w DataGrid była wyświetlona jedynie godzina (HH:mm) z pobranej daty? Próbowałam zrobić Start = p.DATA_START.ToString("HH:mm") - ale mam komunikat:

Additional information: LINQ to Entities does not recognize the method 'System.String ToString(System.String)' method, and this method cannot be translated into a store expression.

1

Jakiego naprawdę typu jest p.DATA_START? Bo Ty twierdzisz, że DateTime, a kompilator, że string.

0

A jak sprawdzić jakiego naprawdę jest typu? tak na przyszłość żebym wiedziała, bo problem już rozwiązany. Pomógł Resharper, który zamienił mi kod na:

var query = AutoLot.KALENDARZ.ToList().Select(p => new
{
    Start = p.DATA_START.ToString("HH:mm"),
    Opis = p.OPIS
}).Take(5);

...i działa :)

0

Skoro piszesz tę aplikację, to chyba wiesz, jakiego typu masz właściwości w klasach i kolumny w tabelach?

1 użytkowników online, w tym zalogowanych: 0, gości: 1