{"id":27260655,"url":"https://github.com/openriaservices/openriaservices.m2m","last_synced_at":"2025-04-11T04:54:02.070Z","repository":{"id":45682170,"uuid":"181884863","full_name":"OpenRIAServices/OpenRiaServices.M2M","owner":"OpenRIAServices","description":"M2M4RIA is an extension for OpenRIAServices that adds support for many-2-many relations.","archived":false,"fork":false,"pushed_at":"2022-11-17T21:44:56.000Z","size":1795,"stargazers_count":3,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-11T04:53:57.400Z","etag":null,"topics":["code-generation","dotnet","many2many","open-ria-services"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"ms-pl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenRIAServices.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}},"created_at":"2019-04-17T12:16:58.000Z","updated_at":"2023-05-03T16:13:46.000Z","dependencies_parsed_at":"2023-01-21T19:45:49.744Z","dependency_job_id":null,"html_url":"https://github.com/OpenRIAServices/OpenRiaServices.M2M","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRIAServices%2FOpenRiaServices.M2M","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRIAServices%2FOpenRiaServices.M2M/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRIAServices%2FOpenRiaServices.M2M/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRIAServices%2FOpenRiaServices.M2M/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenRIAServices","download_url":"https://codeload.github.com/OpenRIAServices/OpenRiaServices.M2M/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345286,"owners_count":21088243,"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":["code-generation","dotnet","many2many","open-ria-services"],"created_at":"2025-04-11T04:54:01.111Z","updated_at":"2025-04-11T04:54:02.065Z","avatar_url":"https://github.com/OpenRIAServices.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Build status\r\n[![Build Status](https://dev.azure.com/OpenRiaServices/OpenRiaServices/_apis/build/status/OpenRIAServices.OpenRiaServices.M2M?branchName=master)](https://dev.azure.com/OpenRiaServices/OpenRiaServices/_build/latest?definitionId=2\u0026branchName=master)\r\n\r\nSonarcloud status\r\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=OpenRIAServices_OpenRiaServices.M2M\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=OpenRIAServices_OpenRiaServices.M2M)\r\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenRIAServices_OpenRiaServices.M2M\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=OpenRIAServices_OpenRiaServices.M2M)\r\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenRIAServices_OpenRiaServices.M2M\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=OpenRIAServices_OpenRiaServices.M2M)\r\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenRIAServices_OpenRiaServices.M2M\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=OpenRIAServices_OpenRiaServices.M2M)\r\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=OpenRIAServices_OpenRiaServices.M2M\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=OpenRIAServices_OpenRiaServices.M2M)\r\n\r\n\r\n\r\nNuget [![Nuget](https://img.shields.io/nuget/v/OpenRiaServices.M2M.svg)](https://www.nuget.org/packages/OpenRiaServices.M2M)\r\npreview [![Nuget (with prereleases)](https://img.shields.io/nuget/vpre/OpenRiaServices.M2M.svg)](https://www.nuget.org/packages/OpenRiaServices.M2M)\r\n\r\n\r\n## Overview\r\n\r\nM2M4RIA is an extension for [OpenRIAServices](https://github.com/OpenRIAServices/OpenRiaServices) that adds support for many-2-many relations.\r\n\r\n## Features\r\n\r\n* Can be installed with NuGet.\r\n* Supports Entity Framework code-first, model first, and DbContext.\r\n* A strongly-typed configuration mechanism using the [Fluent Metadata API](https://riaservicescontrib.codeplex.com/wikipage?title=FluentMetadata%20for%20WCF%20RIA%20Services) for OpenRIAServices\r\n* A code generator that seamlessly integrates with the code generator of OpenRIAServices.\r\n* Requires only a minimal adaption of your data model (see StepByStepInstructions on wiki).\r\n* Supports many-2-many relations with composite keys.\r\n\r\n## Download\r\n\r\nM2M4RIA is distributed as a collection of NuGet packages:\r\n* [OpenRIAServices.M2M](https://nuget.org/packages/OpenRiaServices.M2M) This is the server-side part of M2M4RIA. It contains an entity code generator and an extension to the fluent metadata configuration for OpenRIAServices.\r\n* [OpenRIAServices.M2M.LinkTable](https://nuget.org/packages/OpenRIAServices.M2M.LinkTable) This is a generic link table implementation that is used for creating \"link table\" views for your M2M relations (see [GeneralOverview](../GeneralOverview)).\r\n* [OpenRiaServices.M2M.Client](https://nuget.org/packages/OpenRiaServices.M2M.Client) This is the client-side part of M2M4RIA. It contains classes for creating M2M views (see [GeneralOverview](../GeneralOverview)).\r\n\r\n## Usage\r\n\r\n1. Add the [M2M4RIA NuGet](https://nuget.org/packages?q=OpenRiaServicesM2M) packages to your solution.\r\n2. Create LinkTable entities (By subclassing a generic LinkTable class provided by M2M4RIA).\r\n3. Extend your data model with \"link table\" views.\r\n4. Configure your M2M relations using the fluent metadata API.\r\n5. Add Insert/Delete operations to your domain service for your link table entities \r\nA complete step-by-step guide is provided [here](https://github.com/OpenRIAServices/OpenRiaServices.M2M/wiki/Step-by-step-instructions-for-using-M2M-with-OpenRIAServices).\r\n\r\n## Demo\r\n\r\nThe source code repository contains a sample application that shows how M2M4RIA can be used..\r\n\r\n## See Also\r\nFor more information and installation instructions go to https://github.com/OpenRIAServices/OpenRiaServices.M2M and check the wiki\r\n\r\nStep by step guide is availible at the wiki\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenriaservices%2Fopenriaservices.m2m","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenriaservices%2Fopenriaservices.m2m","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenriaservices%2Fopenriaservices.m2m/lists"}