{"id":19593386,"url":"https://github.com/haritha99ch/extendedspecificationpattern-example","last_synced_at":"2026-04-21T09:31:21.082Z","repository":{"id":234885026,"uuid":"789685390","full_name":"haritha99ch/ExtendedSpecificationPattern-Example","owner":"haritha99ch","description":"Showcases an extended specification pattern with projection capability. ","archived":false,"fork":false,"pushed_at":"2024-04-21T09:11:16.000Z","size":37,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T14:17:04.432Z","etag":null,"topics":["aggregate-root","clean-architecture","domain-driven-design","dotnet","entity-framework-core","generic-repository","mssql","specification-pattern","user-secrets"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haritha99ch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-21T09:09:58.000Z","updated_at":"2025-01-06T01:08:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"90929df8-11c4-4735-9829-1bf46e6ab697","html_url":"https://github.com/haritha99ch/ExtendedSpecificationPattern-Example","commit_stats":null,"previous_names":["haritha99ch/extendedspecificationpattern-example"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/haritha99ch/ExtendedSpecificationPattern-Example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haritha99ch%2FExtendedSpecificationPattern-Example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haritha99ch%2FExtendedSpecificationPattern-Example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haritha99ch%2FExtendedSpecificationPattern-Example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haritha99ch%2FExtendedSpecificationPattern-Example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haritha99ch","download_url":"https://codeload.github.com/haritha99ch/ExtendedSpecificationPattern-Example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haritha99ch%2FExtendedSpecificationPattern-Example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32085405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T06:27:27.065Z","status":"ssl_error","status_checked_at":"2026-04-21T06:27:21.250Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aggregate-root","clean-architecture","domain-driven-design","dotnet","entity-framework-core","generic-repository","mssql","specification-pattern","user-secrets"],"created_at":"2024-11-11T08:39:21.489Z","updated_at":"2026-04-21T09:31:21.057Z","avatar_url":"https://github.com/haritha99ch.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Specification Pattern In .NET With Projection.\n\nThis demo project showcases an extended specification pattern with projection capability, specifically tailored for Entity Framework in .NET. It showcases how the specification pattern can be effectively utilized with projection or selecting during SQL query execution rather than mapping after data retrieval, this pattern is designed to handle selection/projection directly within the SQL query when implementing the repository pattern with specifications.\n\n## Setup\n\n### Prerequisite\n\n1. .NET 8 installed on your computer. You can download .NET 8 from the official website (\u003chttps://dotnet.microsoft.com/download/dotnet/8.0\u003e).\n2. An integrated development environment (IDE) to write your code\n3. Git installed on your computer.\n\n### Initial setup\n\n1. Clone the project.\n\n```shell\ngit clone https://github.com/haritha99ch/ExtendedSpecificationPattern-Example.git\ncd ExtendedSpecificationPattern-Example\n```\n\n2. Set Environment variables.\n\n```shell\ndotnet user-secrets set \"SqlServerOptions:ConnectionString\" CONNECTIONSTRINGS_DEFAULTCONNECTION --project ./src/ApplicationSettings/\n```\n\n3. Install all the dependencies.\n\n   ```shell\n   dotnet restore\n   ```\n\n4. Build the project.\n\n```shell\ndotnet build\n```\n\n5. Add migrations and update database.\n\n```shell\ndotnet ef migrations add InitialMigration --project ./src/Infrastructure/\ndotnet ef database update --project ./src/Infrastructure/\n```\n\n\u003e Make sure, dotnet-ef tool is installed with `dotnet tool install --global dotnet-ef`\n\n5. Run the project.\n\n```shell\ndotnet run --project ./src/Presentation/\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharitha99ch%2Fextendedspecificationpattern-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharitha99ch%2Fextendedspecificationpattern-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharitha99ch%2Fextendedspecificationpattern-example/lists"}