Связывание пользовательского свойства в Entity Framework - PullRequest
2 голосов
/ 22 декабря 2010

У меня есть объект сотрудника в моей модели EF. Затем я добавил класс в проект, чтобы добавить пользовательское свойство

public partial class Employee
{
    public string Name
    {
        get { return string.Format("{0} {1}", this.FirstName, this.LastName); }
    }
}

В форме aspx (внутри FormView) я хочу привязать DropDownList к коллекции сотрудников:

                <asp:Label runat="server" AssociatedControlID="ddlManagerId"
                    Text="ManagerId" />
                <asp:DropDownList ID="ddlManagerId" runat="server" 
                    DataSourceID="edsManagerId" 
                    DataValueField="Id" 
                    DataTextField="Name" 
                    AppendDataBoundItems="true"
                    SelectedValue='<%# Bind("ManagerId") %>'>
                    <asp:ListItem Text="-- Select --" Value="0" />
                </asp:DropDownList>
                <asp:EntityDataSource ID="edsManagerId" runat="server" 
                    ConnectionString="name=Entities" 
                    DefaultContainerName="Entities" 
                    EntitySetName="Employees" 
                    EntityTypeFilter="Employee"
                    EnableFlattening="true">
                </asp:EntityDataSource>

К сожалению, когда я запускаю страницу, я получаю сообщение об ошибке:

DataBinding: 'System.Web.UI.WebControls.EntityDataSourceWrapper' does not contain a property with the name 'Name'.

Есть идеи, что я делаю не так?

Ответы [ 3 ]

1 голос
/ 01 марта 2011

После долгих поисков я обнаружил, что EntityDataSource не поддерживает пользовательские свойства в частичных классах. Он возвращает только сущность, которая находится в модели.

1 голос
/ 06 января 2015

Согласно этой статье :

Проблема в том, что мы используем EntityDataSourceWrapper, а не нашу фактическую сущность.Решение?Прекратите использовать обертку!Отключить выравнивание, например:

<asp:EntityDataSource ... EnableFlattening="False" ... </asp:EntityDataSource>

Более подробная информация о выравнивании здесь .

0 голосов
/ 22 декабря 2010

Не могли бы вы проверить, что оба ваших частичных класса Employee находятся в одном и том же пространстве имен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...