{"id":28401590,"url":"https://github.com/circles-arrows/blueprint41","last_synced_at":"2025-06-28T20:32:41.529Z","repository":{"id":37933123,"uuid":"102453706","full_name":"circles-arrows/blueprint41","owner":"circles-arrows","description":"An Object Graph Mapper for CSharp to connect to Neo4j or Memgraph.","archived":false,"fork":false,"pushed_at":"2025-05-31T11:01:29.000Z","size":38505,"stargazers_count":34,"open_issues_count":6,"forks_count":8,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-31T23:17:46.565Z","etag":null,"topics":["dotnet","graph","migrations","neo4j","ogm","orm-library"],"latest_commit_sha":null,"homepage":"http://www.blueprint41.com/","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/circles-arrows.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2017-09-05T08:13:55.000Z","updated_at":"2025-01-28T09:43:19.000Z","dependencies_parsed_at":"2025-05-20T15:47:22.797Z","dependency_job_id":null,"html_url":"https://github.com/circles-arrows/blueprint41","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circles-arrows%2Fblueprint41","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circles-arrows%2Fblueprint41/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circles-arrows%2Fblueprint41/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circles-arrows%2Fblueprint41/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/circles-arrows","download_url":"https://codeload.github.com/circles-arrows/blueprint41/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circles-arrows%2Fblueprint41/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257450657,"owners_count":22547760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dotnet","graph","migrations","neo4j","ogm","orm-library"],"created_at":"2025-06-01T13:01:06.102Z","updated_at":"2025-06-28T20:32:41.512Z","avatar_url":"https://github.com/circles-arrows.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n \n\u003cdiv\u003e\n   \u003cdiv\u003e\u003cimg align=\"left\" src=\"https://github.com/circles-arrows/blueprint41/assets/121929116/88c219d4-403b-4e98-81a6-f1f3055a0a33\" alt=\"Blueprint41\" width=\"180\" height=\"180\"\u003e\u003c/div\u003e \n   \u003cdiv align=\"right\"\u003e\n     \u003cdiv align=\"left\"\u003e\u0026nbsp;\u003c/div\u003e\n     \u003cdiv align=\"left\"\u003e\u003cb\u003e ✔️ Supports for Neo4j and Memgraph\u003c/b\u003e\u003c/div\u003e  \n     \u003cdiv align=\"left\"\u003e\u003cb\u003e ✔️ Works Visual Studio, Visual Studio Code and Rider\u003c/b\u003e\u003c/div\u003e   \n     \u003cdiv align=\"left\"\u003e\u003cb\u003e ✔️ Develop on Windows, macOS or Linux\u003c/b\u003e\u003c/div\u003e     \n     \u003cdiv align=\"left\"\u003e\u0026nbsp;\u003c/div\u003e\n     \u003cdiv align=\"left\"\u003e\u003ch1\u003eBlueprint41\u003c/h1\u003e\u003c/div\u003e\n     \u003cdiv align=\"right\"\u003e\n      \u003ca href=\"https://www.nuget.org/packages/Blueprint41\"\u003e\u003cimg alt=\"NuGet\" src=\"https://img.shields.io/nuget/v/Blueprint41.svg\"\u003e\u003c/a\u003e\n      \u003ca href=\"https://www.nuget.org/packages/Blueprint41\"\u003e\u003cimg alt=\"downloads\" src=\"https://img.shields.io/nuget/dt/Blueprint41\"\u003e\u003c/a\u003e\n      \u003cimg alt=\"repo size\" src=\"https://img.shields.io/github/repo-size/circles-arrows/blueprint41\"\u003e\n      \u003cimg alt=\"license\" src=\"https://img.shields.io/github/license/circles-arrows/Blueprint41\"\u003e\n      \u003ca href=\"https://sonarcloud.io/summary/new_code?id=circles-arrows_blueprint41\"\u003e\u003cimg alt=\"Quality Gate Status\" src=\"https://sonarcloud.io/api/project_badges/measure?project=circles-arrows_blueprint41\u0026metric=alert_status\"\u003e\u003c/a\u003e\n     \u003c/div\u003e\n   \u003c/div\u003e  \n\u003c/div\u003e \n\n### .NET ORM for Neo4j and Memgraph Database\n\nSimplify database operations through generated data access objects. \n\n### Frictionless Development with Intellisense \n\n![Intellisense](https://raw.githubusercontent.com/circles-arrows/blueprint41/master/Documentation/Blueprint41_Intellisense.gif)\n\n### Neo4j Plugins (Optional)\n* Download Blueprint41 plugin for [Neo4j v5](https://github.com/circles-arrows/functionalid/blob/master/blueprint41-5.0.0.jar?raw=true), [Neo4j v4](https://github.com/circles-arrows/functionalid/blob/master/blueprint41-4.0.3.jar?raw=true) or [Neo4j v3](https://github.com/circles-arrows/functionalid/blob/master/blueprint41-1.0.3.jar?raw=true).\n* Download APOC plugin [here](https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_download_latest_release).\n\nTo learn more, please visit [Extension and Plugins](https://github.com/circles-arrows/blueprint41/wiki/Extension-and-Plugins).\n\n### Documentation\n\nTo learn more, please visit [Blueprint41 wiki](https://github.com/circles-arrows/blueprint41/wiki).\n### Connection\n\n```csharp\nPersistenceProvider.CurrentPersistenceProvider = new Neo4JPersistenceProvider($\"bolt://localhost:7687\", $\"neo4j\", $\"password\");\n```\n\n### Automated Deployment of Schema Upgrades\n\n```csharp\n// Datastore defines the latest schema definition\nDatastore model = new Datastore();\n\n// Sync database schema with the latest upgrade scripts\nmodel.Execute(true);\n```\n\n### Type Safe Creation of Nodes and Relationships\n\n```csharp\nusing (Transaction.Begin())\n{\n    Movie matrix = new Movie()\n    {\n        Title = \"The Matrix\",\n        Tagline = \"Welcome to the Real World\",\n        Released = new DateTime(1999, 3, 31)\n    };\n\n    Person keanu = new Person()\n    {\n        Name = \"Keanu Reeves\",\n        Born = new DateTime(1964, 9, 2)\n    };\n\n    Person lana = new Person()\n    {\n        Name = \"Lana Wachowski\",\n        Born = new DateTime(1961, 7, 30)\n    };\n\n    Person lilly = new Person()\n    {\n        Name = \"Lilly Wachowski\",\n        Born = new DateTime(1967, 12, 29)\n    };\n    \n    // Creates relationship via Type-safe generated objects\n    movie.Actors.Add(keanu);\n    movie.Directors.Add(lana);\n    movie.Directors.Add(lilly);\n    movie.Genre.Add(Genre.Load(Genre.StaticData.Name.Action));\n    movie.Genre.Add(Genre.Load(Genre.StaticData.Name.Sci_Fi));\n\n    // Commits detected changes to database\n    Transaction.Commit(); \n}\n```\n\n\n### Type Safe Querying of the Graph\n\n```csharp\nusing (Transaction.Begin())\n{\n    // Get Movies of Keanu(Direct relationship)\n    Person keanu = Person.LoadByName(\"Keanu Reeves\");\n    EntityCollection\u003cMovie\u003e movies = keanu.ActedIn; // Movies are retrieve here\n\n    // Get Director of Keanu(Spans multiple relationships)\n    var query = Transaction.CompiledQuery\n    .Match\n    (\n        Node.Person.Alias(out var director)\n            .In.PERSON_DIRECTED_MOVIE.Out.\n        Movie\n            .Out.PERSON_ACTED_IN_MOVIE.In.\n        Person.Alias(out var actor)\n    )\n    .Where(actor.Name == \"Keanu Reeves\")\n    .Return(director)\n    .Compile();\n\n    List\u003cPerson\u003e directors = Person.LoadWhere(query);\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircles-arrows%2Fblueprint41","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcircles-arrows%2Fblueprint41","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircles-arrows%2Fblueprint41/lists"}