Привязать результаты запроса 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.