我现在开始使用实体框架,需要一些帮助来理解两个表之间的功能。首先,我有PhoneRecords
和PhoneModels
。每个PhoneRecord
具有一个称为PhoneModelId
的属性,该属性与PhoneModels
之一相关。在MySQL中,这些属性设置为外键关系。
现在,我已将PhoneRecords
的示例加载到DataGrid
中。我有一个TextBox
,我想在PhoneRecord
上反映模型。目前,我的TextBox
如下所示:
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding SelectedRecord.PhoneModelId}"/>
毫不奇怪,将显示
Id
而不是Name
的PhoneModel
。通常,如果没有EntityFramework,我只会在PhoneRecord
本身上拥有一个称为PhoneModelName
的属性,或者是我在写出JOIN
命令时使用SELECT
得到的类似属性。在我看来,该方法是过时的,并且Entity Framework是一种用于编写较长的CRUD操作的强大工具。但是,我被困在如何将MVVM中绑定到
PhoneModel
名称上,而不是使用PhoneModelId
上的PhoneRecord
属性上。 最佳答案
尝试类似的东西:
"{Binding SelectedRecord.PhoneModel.Name}"
我不确定您使用的是哪个版本的EF或哪种风格(代码优先,数据库优先,现有数据库中的代码优先等)...但是...
在EF中,如果您有一个具有外键关系的对象,它将将该对象附加到其父项或子项。因此,每个PhoneRecord都将附加一个PhoneModel对象,反之亦然。如果您首先使用代码,则必须编写此关系的代码,如果您首先使用数据库,则它应该已经存在于模型(EDMX)中,并且您应该能够从PhoneRecord导航到PhoneModel并再次返回。
关于c# - MVVM绑定(bind)到 Entity Framework 中的外键属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45509697/