Привязать результаты запроса LINQ к повторителю

У меня такой запрос

 var businessList = (from u in _DB.Users
join cat in _DB.BusinessCategories on u.UserId equals cat.UserId
select new BusinessDetails(u.Businesses.FirstOrDefault(), u)).Skip(0).Take(10);

dlBusiness.DataSource = businessList.ToList();
dlBusiness.DataBind();

У меня есть Businessname в качестве члена бизнес-класса. У меня есть DataList, как показано ниже

 <asp:DataList ID="dlBusiness" DataKeyField="UserId" runat="server" >
    <ItemTemplate>
            <%#Eval("Business.BusinessName")%>
    </ItemTemplate>
 </asp:DataList>

Вот определение класса

public class BusinessDetails
    {

        public BusinessDetails(Business business,User user){
            this._Business = business;
            this._UserDetails = user;

        }

        private string _distance;
        public string Distance
        {
            get { return _distance; }
            set { _distance = value; }
        }

        private Business _Business;
        public Business BusinessData
        {
            get { return _Business; }
            set { _Business = value; }
        }
        private User _UserDetails;

        public User UserDetails
        {
            get { return _UserDetails; }
            set { _UserDetails = value; }
        }


    }

Но это показывает пустым? Как я могу привязать его к списку данных?

2 ответа

Решение

Я бы изменил это на

DataBinder.Eval(Container.DataItem, "BusinessData.BusinessName")

предполагая, что бизнес-класс имеет BusinessName имущество?

Я думаю, что вы хотели

<%#Eval("BusinessData.BusinessName")%>

вместо

<%#Eval("Business.BusinessName")%>

в ItemTemplate тег.

Я не думаю, что у вас есть поле UserId на BusinessDetails учебный класс. Вы должны заменить это уникальным именем ключевого столбца или удалить его. Я видел, что вы можете получить доступ к BussinessName поэтому спецификатор доступа является публичным.

Привязка правильная. Если управление dataList dlBusiness не может найти это свойство, исключение выдается. Может быть, причина проблемы заключается в том, что businessList возвращает пустое BussinessName.

Другие вопросы по тегам