Я хотел бы отображать данные, которые хранятся в базе данных SQL-сервера в сетке данных с использованием C#. Я пытался следовать this examples on msdn, но столкнулся с ошибкой преобразования типа. Я использую Visual studio 2013.Ошибка преобразования типа данных в C#
Я подключен к SQL-серверу и создал модель данных ado.net с именем myEntity. Модель содержит несколько таблиц, один из которых - «Театр» - это то, что я пытаюсь отобразить на экране.
Вот что у меня есть: О файле MainWindow.xaml У меня есть
<Page x:Class="XYZ.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="theater List" Height="350" Width="525"
Loaded="Data_Loaded">
<Grid>
<DataGrid Name="dataGrid1"></DataGrid>
</Grid>
</Page>
На MainWindow.xaml.cs в файл у меня есть:
using System.Data.Entity.Core.Objects;
using System.Windows;
using System.Windows.Controls;
using System.Linq;
namespace XYZ
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public sealed partial class MainPage : Page
{
myEntities dataEntites = new myEntities();
public MainPage()
{
InitializeComponent();
}
private void Data_Loaded(object sender, RoutedEventArgs e)
{
ObjectQuery<Theater> theaters = dataEntites.Theaters;
var query = from theater in theaters
where theater.type == "Big"
orderby theater.id
select new
{
theater.State,
theater.City,
theater.Type,
theater.Id,
theater.Name,
theater.Capacity
...
};
dataGrid1.ItemsSource = query.ToList();
}
}
}
я столкнулся сообщение об ошибке на линия
ObjectQuery<Theater> theaters = dataEntites.Theaters;
который гласит:
Не может неявно преобразовать тип
'System.Data.Entity.DbSet<XYZ.Theater>'
в'System.Data.Entity.Core.Objects.ObjectQuery<XYZ.Theater>'
Как я могу это исправить? Благодарю.
Ну есть какая-либо причина вы думаете, вам нужны '' ObjectQuery? Я бы просто объявил переменную как тип 'IQueryable ' ... –
Возможный дубликат http://stackoverflow.com/a/11262713/5922757 – Jezor
Ничего особенного, только попытайтесь следовать примерам. Я дам IQueryable попытку. –
Hank