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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#ADO .Net Entities Framework使用查询语句时遇到的错误相关的知识,希望对你有一定的参考价值。

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

以上是关于C#ADO .Net Entities Framework使用查询语句时遇到的错误的主要内容,如果未能解决你的问题,请参考以下文章

C#/ADO.NET - 在数据表中使用 SetField 时跳过的行?

请教C#/.net高手,用ado.net访问mysq与访问sqlserver的区别主要在哪些地方?

ADO.NET和.NET的关系?

ADO.Net DataTables 有索引吗?

使用 ADO.NET 流畅的 NHibernate 地图

VB.net数据库编程(08):ADO.net数据访问接口