通过ID从参考表中获取描述

时间:2016-04-08 13:27:24

标签: c# wpf data-binding linq-to-sql

我有两个SQL Server表 - PhoneNumbersPhoneLineTypesPhoneNumbers有一个引用PhoneLineTypeID的外键PhoneLineTypes.ID

Visual Studio为这两个表创建了类,但PhoneNumber类只有int的{​​{1}}字段,而不是PhoneLineTypeID类型的字段。

我的问题是我想要来自PhoneLineType的电话线类型的字符串描述,但我只有来自PhoneLineTypes的int PhoneLineTypeID(而不是{{ 1}}我想要PhoneNumbers)。我最终想要将WPF ComboBox绑定到该值,但由于它不存在于类中,我不知道要绑定到什么。

3 个答案:

答案 0 :(得分:0)

您应该创建转换器,将PhoneLineTypeID转换为PhoneLineTypes所需的任何内容。如果您需要帮助,网上有一些关于如何使用转换器的教程。

答案 1 :(得分:0)

我正在这里用黑暗刺穿它(看到你的查询或代码之类的东西会很好),但是你需要在查询中加入PhoneNumbers和PhoneLineTypes表。使用Linq(我认为你说你正在使用它),你会看到像

这样的东西
var query = from number in PhoneNumbers
        join phoneType in PhoneLineTypes
        on numbers.PhoneLineTypeID equals phoneType.ID
        select new{
            ID = number.PhoneLineTypeID,
            Name = phoneType.Description
        }
phoneComboBox.ItemsSource = query.ToList();
phoneComboBox.DisplayMemberPath = "Name";
phoneComboBox.SelectedValuePath = "ID"

就像我说的那样,如果没有填补一些空白,很难提供更多帮助,但希望这会让你走上正轨

答案 2 :(得分:0)

使用您的外键,您应该可以执行以下操作

var query = from number in PhoneNumbers
            select number.PhoneLineTypes.PhoneLineType