DropDownList DataTextField для свойства навигации - PullRequest
0 голосов
/ 31 января 2011

мне нужна помощь со следующим.

я получаю список объектов из контекста данных Entity Framework.

var list = context.EntityA;

EntityA является основным объектом (содержит первичный ключ), но имеет свойство навигации, называемое «EntityALanguages», которое содержит свойства, специфичные для языка.

Теперь я хочу связать список с раскрывающимся списком и должен установить свойства DataValueField и DataTextField из раскрывающегося списка.

как мне установить для DataTextField свойство свойства навигации, например:

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

Редактировать: свойство навигации "EntityALanguages" является коллекцией, поэтому EntityA -> EntityALanguages ​​является1-н отношение

Ответы [ 3 ]

0 голосов
/ 04 августа 2011

DropDownList может не поддерживать деревья свойств для привязки.

Что вы можете сделать, если хотите связать, это сделать следующее:

var items = context.Entity.Include ("EntityALanguages"). Выбрать (row => new {Id = row.GUID, Name = row.EntityALanguages.ShortDescription}). ToList ();

ddl.DataTextField = "Имя"; ddl.DataValueField = "Id";

0 голосов
/ 23 августа 2014

В вашей сущности EntityALanguages ​​вы можете добавить свойство только для чтения, как это

public readonly string EntityALanguagesShortDescription
{
    get { return this.EntityALanguages.ShortDescription; }
}
0 голосов
/ 31 января 2011

При использовании var list = context.EntityA; ваши навигационные свойства будут загружены с отложенной загрузкой.Попробуйте var list = context.EntityA.Include("EntityALanguages");, так что ваша навигация будет присутствовать.

...