DropDownList导航属性上的DataTextField

时间:2011-01-30 22:57:42

标签: asp.net entity-framework drop-down-menu navigation-properties datatextfield

我需要以下帮助。

我从Entity Framework数据上下文中获取了一个对象列表。

var list = context.EntityA;

EntityA是主要对象(包含主键),但有一个名为“EntityALanguages”的导航属性,其中包含特定于语言的属性。

现在我想将列表绑定到下拉列表,并且需要从下拉列表中设置DataValueField和DataTextField属性。

如何将DataTextField设置为导航属性的属性,如:

this.ddl.DataValueField = "GUID";
this.ddl.DataTextField = "EntityALanguages.ShortDescription";
  

编辑:   导航属性“EntityALanguages”是一个集合,因此EntityA - > EntityALanguages是1-n关系

3 个答案:

答案 0 :(得分:0)

使用var list = context.EntityA;您的导航属性将被延迟加载。试试var list = context.EntityA.Include("EntityALanguages");,这样您的导航功能就会出现。

答案 1 :(得分:0)

DropDownList可能不支持绑定属性。

如果要绑定,可以执行以下操作:

var items = context.Entity.Include(“EntityALanguages”)。选择(row => new {Id = row.GUID,Name = row.EntityALanguages.ShortDescription})。ToList();

ddl.DataTextField =“姓名”;   ddl.DataValueField =“Id”;

答案 2 :(得分:0)

在您的实体EntityALanguages中,您可以添加像这样的只读属性

public readonly string EntityALanguagesShortDescription
{
    get { return this.EntityALanguages.ShortDescription; }
}