这是非常简单的linq,我刚刚开始。我已将问题追溯到三个来源之一,但不知道如何解决问题。所以这里是代码,我会解释它下面的问题。Linq to Sql没有给出正确的数据
XAML绑定:
<ListBox Name="lstJobs" ItemsSource="{Binding Path=Title}" DockPanel.Dock="Top"
MinWidth="150" MinHeight="200" MaxHeight="250"
ScrollViewer.VerticalScrollBarVisibility="Visible"
SelectionChanged="lstJobs_SelectionChanged" />
C#代码隐藏(窗口中加载事件):
TMDataContext TMDataBase = new TMDataContext();
lstJobs.ItemsSource = from j in TMDataBase.JobDetails
select j;
结果:
问题: 我知道连接正在工作,因为JobDtail表中只有3条记录。
回到大学,我们了解到,如果ToString方法没有超载以强制其他操作,那么类会输出它们的名字。问题是我不想修改由L2S生成的类,因为它们是自动生成的,任何修改都会在以后丢失。我将进行更改,以便对自动生成的代码进行更改是多余的。
在做L2S之前,我建立了数据库,还有一些“实体”类都是使用继承来设计的,我必须删除它们,因为它们与L2S类发生冲突。 L2S自动生成的类对我来说已经很难了,我希望能够替换它们的属性,构造函数和添加方法。或者至少重命名或将它们扩展到整洁的地方,我可以重新实现我的继承结构。
我使用的方法很简单。用户界面的一组类。一组“控制”类来处理业务逻辑,以及一组“实体”类来与数据库连接。但是整个L2S自动化类的生成通过替换我的实体类来解决这个问题。
无论如何,我的第一个问题是我想在每个记录的列表框中显示作业标题(一个字段形成作业详细信息表)。当选择在列表框中改变时,相关记录将被访问,并将填入一堆文本框,以允许用户编辑该记录。
任何帮助,这将是真正appreicated。提前致谢。
只需添加'DisplayMemberPath =“标题”'。这应该仍然绑定您的JobDetails对象,但显示作业详细信息对象的Title属性。 – thoean
谢谢你,它的工作。并为快速响应。 –
当然,如果您只需要标题而不是其他细节信息,那么如果您只投影标题,而不是为每条记录提取和保存整个JobDetail对象实例,则内存占用和性能会更好。 –