Член Ado.Net RecordSet эквивалент? - PullRequest
2 голосов
/ 26 октября 2010

В настоящее время я переписываю программу Vb6, основанную на ADO, на C # w / ADO.NET.Я столкнулся с несколькими местами в исходном коде с такими вещами:

Dim rs As New Recordset
rs.CacheSize = 500
Call rs.Open(sSql, cnMeta, adOpenForwardOnly, adLockReadOnly)

Есть ли эквивалент (или даже необходимость в эквиваленте) ADO.RecordSet.CacheSize в Ado.Net?(Капитализация на них?) Я рад, что «ADO.NET» позаботится об этом за вас ( очень рад принять это, на самом деле).Моя проблема в том, что у меня не было опыта ADO до этой миграции, поэтому я не уверен, есть ли какие-то тонкости, которые я бы упустил.

Правильно ли я понимаю, что adOpenForwardOnly и adLockReadOnly - способ [ПРАВИТЬ]RecordSet ведет себя так, как SqlDataReader уже делает [/ EDIT]?Если это так, то мой единственный реальный вопрос заключается в том, нужно ли мне увеличивать кэш Ado.Net или это обрабатывается по умолчанию.

Мне очень жаль, если это повторяющийся вопрос.Я не могу найти это на SO или MSDN, хотя.

Ответы [ 2 ]

2 голосов
/ 27 октября 2010

Свойство CacheSize управляет количеством записей, которые набор записей читает в свой внутренний буфер.В ADO.NET нет эквивалентного свойства, потому что оно не буферизуется таким же образом.Итак, вы можете просто пропустить это.

Правильно ли я понимаю, что adOpenForwardOnly и adLockReadOnly по умолчанию являются SqlDataReader?

Да.Ну, это не по умолчанию, а скорее единственный способ, которым когда-либо работает устройство чтения данных.Для любого другого способа использования RecordSet вы должны использовать другие классы, такие как DataSet и SqlDataAdapter.

1 голос
/ 27 октября 2010

Этот пост может помочь:

http://www.devnewsgroups.net/adonet/t55360-paging-recordsets-ado-net.aspx

Также быстрая ссылка на тему MSDN CacheSize:

http://msdn.microsoft.com/en-us/library/ms675871%28VS.85%29.aspx

Моя рекомендацияОднако стоит познакомиться с Linq-to-SQL, который был представлен в .NET 3.5.Я бы предпочел не рекомендовать вам заменить устаревшую функциональность VB6 на ADO.NET, когда у меня был большой опыт работы с LINQ (который построен на ADO.NET и очень удобен для программистов) - читайте здесь среди многих мест, чтобы увидеть, в чем различия.

...