private static void saveCrawlInDatabase(crawlingResult crawledResult) { if (crawledResult.blcrawlSuccess == false) { return; } using (var context = new DBCrawling()) { tblMainUrl crawledUrl = new tblMainUrl(); crawledUrl.UrlHash = crawledResult.srCrawledUrl.normalizeUrl().ComputeSha256Hash(); var vrResult = context.tblMainUrls.SingleOrDefault(b => b.UrlHash == crawledUrl.UrlHash); if (vrResult == null) { context.tblMainUrls.Add(crawledUrl); } else { crawledUrl = vrResult; context.tblMainUrls.Attach(crawledUrl); context.Entry(crawledUrl).State = EntityState.Modified; } crawledUrl.DiscoverDate = crawledResult.dtDiscoverDate; crawledUrl.FetchTimeMS = crawledResult.irCrawlingTimeMS; crawledUrl.LastCrawlingDate = crawledResult.dtLastCrawlingDate; crawledUrl.LinkDepthLevel = crawledResult.irLinkDepthLevel; crawledUrl.PageTile = crawledResult.srTitleofPage; crawledUrl.ParentUrlHash = crawledResult.srParentUrlHash.normalizeUrl().ComputeSha256Hash(); crawledUrl.SourceCode = crawledResult.srCrawledSourceCode.CompressString(); crawledUrl.CompressionPercent = Convert.ToByte( Math.Floor( ((crawledUrl.SourceCode.Length.ToDouble() / crawledResult.srCrawledSourceCode.Length.ToDouble()) * 100)) ); crawledUrl.Url = crawledResult.srCrawledUrl; var gg = context.SaveChanges(); } }