本文整理汇总了C#中IDataAccess.Extract方法的典型用法代码示例。如果您正苦于以下问题:C# IDataAccess.Extract方法的具体用法?C# IDataAccess.Extract怎么用?C# IDataAccess.Extract使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDataAccess
的用法示例。
在下文中一共展示了IDataAccess.Extract方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Start
public void Start(int pollIntervalInSeconds, IDataAccess dal, ILogger logger)
{
while (true)
{
var tables = dal.GetAllTables();
int rc = 0;
foreach (Table t in tables.OrderByDescending(t => t.Prefetch))
{
try
{
int rowCount = 0;
var changedRows = dal.Extract (t);
if(changedRows.Count > 0) {
logger.WriteLine ("Extracting {0} from {1}...", changedRows.Count, t);
}
foreach (var changedRow in changedRows) {
t.MaxExtractedVersion = (byte[])changedRow ["Version"];
changedRow ["_extracted_on"] = DateTime.Now;
changedRow ["_environment"] = t.Environment;
if (t.Prefetch) {
// prefetched data needs to be updated in cache when it changes
Cache.Set (t.Environment, t.Name, t.GetKey (changedRow), changedRow);
}
dal.UpsertRow (t, changedRow);
dal.PersistVersion (t);
rowCount++;
}
rc += rowCount;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
Debug.WriteLine(ex.ToString());
}
}
if (rc == 0)
{
Thread.Sleep(pollIntervalInSeconds*1000);
}
}
}