{"adoption": {"forks": 638, "observed_at": "2026-08-28T04:08:32.065787+00:00", "stars": 4000}, "canonical_url": "https://ross.abutalabs.com/products/efcorebulkextensions", "card": {"archived": false, "artifact_type": "library", "description": "Entity Framework EF Core efcore Bulk Batch Extensions with BulkCopy in .Net for Insert Update Delete Read (CRUD), Truncate and SaveChanges operations on SQL Server, PostgreSQL, MySQL, SQLite, Oracle", "domain": ["databases", "backend", "developer-tools", "big-data"], "enriched": true, "function": ["orm", "database-driver", "database"], "health_score": 89, "homepage": "https://codis.tech/efcorebulk", "language": "C#", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["borisdj/EFCore.BulkExtensions"], "name": "borisdj/EFCore.BulkExtensions", "platform": ["dotnet", "cross-platform"], "pushed_at": "2026-08-14T12:25:19+00:00", "repo": "borisdj/EFCore.BulkExtensions", "stars": 4000, "tags": ["entity-framework-core", "bulk-operations", "bulkcopy", "upsert", "batch-processing", "sql-server", "postgresql", "mysql", "sqlite", "oracle", "dual-license"], "topics": ["entity-framework-core", "entityframeworkcore", "entityframework", "efcore", "bulk", "batch", "sql", "sqlbulkcopy", "sqlserver", "sqlite", "postgresql", "copy", "mysql"], "urls": [], "use_cases": ["bulk insert millions of rows into sql server with ef core", "fast bulk update and delete with entity framework core", "upsert large datasets in postgresql from .net", "speed up ef core SaveChanges for large batches", "bulk read and sync data across mysql and sqlite", "truncate tables from ef core"], "what_it_is": "A .NET library extending Entity Framework Core with high-performance bulk CRUD operations (Insert, Update, Delete, Read, Upsert, Sync, SaveChanges) using native database bulk protocols. It supports SQL Server, PostgreSQL, MySQL, Oracle, and SQLite, and is dual-licensed (free community license with commercial licensing for larger companies).", "when_to_avoid": ["your company exceeds the revenue threshold and you cannot accept the commercial dual-license terms", "you only do small-volume CRUD where native EF Core is fast enough", "you are not using .NET or Entity Framework Core"], "when_to_choose": ["you use EF Core and need to insert, update, or delete large datasets far faster than default SaveChanges", "you need multi-database bulk support (SQL Server, PostgreSQL, MySQL, Oracle, SQLite) from one API", "your company qualifies for the free community license and you want a Microsoft-endorsed extension"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/efcorebulkextensions", "repo": "borisdj/EFCore.BulkExtensions", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.065787+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:24:08.755239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b94e06441806d8d9375f5599c73f045199cefb5b92e7e9cde05c19e5acdf2901", "fetched_at": "2026-08-28T04:08:32.065787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/borisdj/EFCore.BulkExtensions"}, {"content_hash": "cc406a2e9ec235d6b2cdb30447bffc47b30d808f2b4c51a2bd162aa45314e73a", "fetched_at": "2026-08-29T09:17:11.528809+00:00", "kind": "homepage", "missing": false, "url": "https://codis.tech/efcorebulk"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3400, "days_push": 19, "days_rel": 640, "gap_med": null, "n_releases_24m": 1}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}