【问题标题】:DataGrid itemsSource from Joined Tables in SQL Database using LINQDataGrid itemsSource 来自使用 LINQ 的 SQL 数据库中的连接表
【发布时间】:2014-09-01 16:54:27
【问题描述】:

我的 SQL Server Express 数据库中有这些表。

我的目标是将“UserInfo”表与“RelCU”表连接起来,并将结果显示在 wpf DataGrid 中。

我尝试了这些代码,但在运行项目时出错。

IQueryable<RelCU> Query =  from u in dbEntities.UserInfoes
                           join m in dbEntities.RelCUs
                           on u.UserID equals m.UserID into temp
                           from j in temp.DefaultIfEmpty()
                           select j;
DataGridRegisteredUsers.ItemsSource = Query;

XAML:

  <DataGrid x:Name="DataGridRegisteredUsers" IsReadOnly="True" AutoGenerateColumns="False" HorizontalContentAlignment="Stretch" Margin="0,0,-1,-1"
                                  FlowDirection="RightToLeft" Opacity="0.9" FontFamily="B Nazanin" FontSize="15">
                            <DataGrid.Columns>
                                <DataGridTextColumn Binding="{Binding Path=UserInfoes.UserID}" IsReadOnly="True"
                                                    Header="ID" />
                                <DataGridTextColumn Binding="{Binding Path=UserInfoes.FirstName}"
                                                    Header="First Name" />
                                <DataGridTextColumn Binding="{Binding Path=UserInfoes.LastName}"
                                                    Header="Last Name" />
                                <DataGridTextColumn Binding="{Binding Path=RelCUs.Score}"
                                                    Header="Score" />
                                <DataGridTextColumn Binding="{Binding Path=RelCUs.Status}"
                                                    Header="Status" />

                            </DataGrid.Columns>
                        </DataGrid>

谢谢!

【问题讨论】:

  • 显示什么错误?
  • 你遇到了什么错误?
  • 你使用的是LEFT JOIN,和select j,所以j可以是null
  • @EdiG。 & visgu minhas:我收到此错误:EntityFramework.dll 中发生“System.NotSupportedException”类型的未处理异常

标签: c# wpf linq entity-framework linq-to-entities


【解决方案1】:

您正在使用LEFT JOINselect j,所以j 可以为空:

  IQueryable<RelCU> Query = from u in dbEntities.UserInfoes
                            join m in dbEntities.RelCUs
                            on u.UserID equals m.UserID into temp
                            from j in temp.DefaultIfEmpty()
                            select new
                            {
                                ID=u.UserID, 
                                FirstName=u.FirstName,
                                LastName=u.LastName,
                                Score = j == null? 0 : j.Score,
                                Status = j == null? "" :j.Status
                            };
  DataGridRegisteredUsers.ItemsSource = Query;

XAML:

 <DataGrid x:Name="DataGridRegisteredUsers" IsReadOnly="True" AutoGenerateColumns="False" HorizontalContentAlignment="Stretch" Margin="0,0,-1,-1"
                              FlowDirection="RightToLeft" Opacity="0.9" FontFamily="B Nazanin" FontSize="15">
                        <DataGrid.Columns>
                            <DataGridTextColumn Binding="{Binding Path=ID}" IsReadOnly="True"
                                                Header="ID" />
                            <DataGridTextColumn Binding="{Binding Path=FirstName}"
                                                Header="First Name" />
                            <DataGridTextColumn Binding="{Binding Path=LastName}"
                                                Header="Last Name" />
                            <DataGridTextColumn Binding="{Binding Path=Score}"
                                                Header="Score" />
                            <DataGridTextColumn Binding="{Binding Path=Status}"
                                                Header="Status" />

                        </DataGrid.Columns>
                    </DataGrid>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    相关资源
    最近更新 更多