Возврат данных из базы данных в .NET: Возвратить DataTable или Список <T>?

Небольшая модификация первоначального ответа:

$('#Clicker').mousedown(function () {
    //do something here
    timeout = setInterval(function () {
        //do same thing here again
    }, 500);

    return false;
});
$('#Clicker').mouseup(function () {
    clearInterval(timeout);
    return false;
});
$('#Clicker').mouseout(function () {
    clearInterval(timeout);
    return false;
});

При событии mouseout на Clicker оно останавливается, когда вы перемещаете мышь из области щелчка.

Причина, по которой я предлагаю сделать одно и то же дважды, состоит в том, чтобы получить более плавный эффект. Если вы не сделаете это один раз до того, как будет установлено время ожидания, в этом случае будет задержка в 500 мс, прежде чем что-то произойдет.

7
задан Peter Bridger 4 November 2009 в 14:43
поделиться

3 ответа

Ваш выбор ограничен базовой технологией, которую вы хотите использовать для доступа к данным. На данный момент существует несколько альтернатив, которые поддерживает набор инструментов VS и платформа .Net:

Исходя из этого, все, кроме типизированных наборов данных ADO.Net, позволяют вам определять отношения навигации, как вы спрашиваете, загружаясь с нетерпением или лениво. В случае, подобном тому, который вы описываете, естественным ходом, связанным с этими технологиями, было бы явное моделирование отношений между новостной статьей и автором в конструкторах и предоставление фреймворку возможности решать проблему загрузки соответствующих данных в соответствующие типы, что в конечном итоге означает что проблема соединения неявно обрабатывается уровнем доступа к данным приложения (фреймворком), а не явно созданной хранимой процедурой.

Выбор технологии будет происходить повсюду в вашем коде, от способа получения данных до их отображения и обновления - ни одна из этих технологий не является легко взаимозаменяемой. Лично я считаю, что LINQ to SQL обеспечивает правильный баланс мощности и сложности.

4
ответ дан 7 December 2019 в 14:34
поделиться

Вы можете попробовать это, возможно, не лучшее решение:

void ShowNews()
{   
    User[] usersConcerned = News.GetAllUsersLinkedWithNews(); //only return the users concerned by the news
    List<News> news = News.GetAllNews();
    foreach(News item in news)
    {
       item.AddedByUser = usersConcerned.FirstOrDefault(u=>u.Id == item.AddedByUserID);
    }
    rptNewsStories.DataSource = news ; 
    rptNewsStories.DataBind();
}
0
ответ дан 7 December 2019 в 14:34
поделиться

Хороший вопрос:

Есть пара подходы, которые вы можете предпринять:

  1. Вы можете получить дополнительные данные, которые вам нужны в событии привязки ретранслятора, и заполнить их «заполнителем» для каждой возвращаемой записи новостей. У этого есть проблемы с производительностью из-за дополнительных запросов, но это будет работать.

  2. Если возможно, я бы изменил объект новостей, чтобы он содержал дополнительную информацию, или создал объект, который наследуется от объекта новостей, который содержал дополнительную информацию или свойства. внутри.

Надеюсь, это поможет :-) +1

Редактировать / Комментарий: I think the friction you are seeing in your design is that you aren't acknowledging the "has-a" relationship between your news object and what I'd call its author/contributor. The join you are doing in your query is just disguising the lack of the relationship in the object model.

0
ответ дан 7 December 2019 в 14:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: