【C#】ADO .Net Entities Framework使用查询语句时遇到的错误

本文介绍如何在WPF应用中使用DataGrid控件结合Entity Framework进行数据展示,并解决直接将数据库查询结果绑定到DataGrid时出现的问题。

XAML代码:

<Window x:Class="WpfApplication72.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        xmlns:local="clr-namespace:WpfApplication72"

        mc:Ignorable="d"

        Title="MainWindow" Height="350" Width="525">

    <Grid>

        <DataGrid x:Name="listBox" ItemsSource="{Binding}" />


    </Grid>

</Window>

隐藏代码:

using System;

using System.Collections.Generic;

using System.Collections.ObjectModel;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;


namespace WpfApplication72

{

    /// <summary>

    /// Interaction logic for MainWindow.xaml

    /// </summary>

    public partial class MainWindow : Window

    {

        private Formula1v2Entities data = new Formula1v2Entities();

        public MainWindow()

        {

            InitializeComponent();

            


            this.DataContext = collection;

        }


        public IEnumerable<object>collection

        {

            get

            {

                return (from r in data.Racers

                       select new

                       {

                         Id=r.Id,

                         FirstName=r.FirstName,

                         LastName=r.LastName,

                         Nationality=r.Nationality

                       }).ToList();


            }

        }

    }

}

在隐藏代码中如果没有ToList()方法的话,运行程序会报如下的错误:

Additional information: Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery, DbRawSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList(). For ASP.NET WebForms you can bind to the result of calling ToList() on the query or use Model Binding,

for more information see http://go.microsoft.com/fwlink/?LinkId=389592.

参考链接:

https://www.devexpress.com/Support/Center/Question/Details/Q580427




      本文转自daniel8294 51CTO博客,原文链接:http://blog.51cto.com/acadia627/1737945,如需转载请自行联系原作者







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值