0

我需要以下帮助。导航属性上的DropDownList DataTextField

我从实体框架数据上下文中得到一个对象列表。

var list = context.EntityA; 

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

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

我怎么能在DataTextField设置为导航属性的属性,像这样:

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

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

回答

0

通过使用var list = context.EntityA;您的导航属性将被延迟加载。尝试var list = context.EntityA.Include("EntityALanguages");,以便您的导航propery将存在。

+0

没有说并没有这样做。导航属性正确加载。 – 2011-01-31 08:53:25

0

DropDownList可能不支持绑定的属性树。

如果要绑定你可以做的是做到以下几点:。

VAR项目= context.Entity.Include( “EntityALanguages”)选择(行=>新{ID = row.GUID, Name = row.EntityALanguages.ShortDescription})。ToList();

ddl.DataTextField =“Name”; ddl.DataValueField =“Id”;

0

在实体EntityALanguages你可以添加一个只读属性,这样

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