Showing results for 
Search instead for 
Did you mean: 

One-to-one (1-1) relationship type in Dataverse

The only two types of relationships that are supported in Dataverse Common Data Service (CDS) are One-to-many (1-N) / Many-to-one (N-1) and many-to-many (N-N). Would be great to finally have the ability to have a true one-to-one (1-1) relationship between two entities. Currently the workaround is to have two relationships, 1-N and N-1 between the two entities and have custom logic (such as classic workflows) to populate the the lookups on each entity.

Status: New
Super User

I don't think there is intention to create one-to-one. The only way to deal with this is then creating a key. 


BTW I disagree that many-to-many relationship is working. You can't access the relationship anywhere in the model driven plus the view problem takes you to the default despite your pre-selected view. 

Super User

Hi @Yahya, I'm not sure I understand both your comments... 1-1 with a key, alt key? That's just a unique index on an entity. N-N (out-of-the-box or custom with junction entity) does work...

Super User

Hi @EricRegnier ,



By key, I mean you can enforce entity A to have a unique record to entity B by creating a key in, for instance, entity A with the key bring the primary name together with the lookup record from the other entity. In this case then you hit the target that only 1 relationship occurs between 2 records from the 2 entities and no duplicates will occur. 


My 2 problems with many to many are:


Add existing will take you to default view despite that you have configured the subgrid to look up a specific view. It's then up to the user yo enter data correctly. This is a bug. 



Number 2 is that the many to many relationship is not accessible in business rules or process. 




Helper V

Hi there,


I think one to one relationships could be really usefull, in my case I have an entity called Invoice which contains all different types of invoices like advance invoice, balance invoice, proforma invoice but also credit notes.


Now I want to create a relation between the original invoice and the credit note but also have a relation between the credit note and the new invoice and of course the original invoice with the new invoice. Having 1:N and N:1 relationships only makes the view way too complex as one would need 6 fields in order to show those relations.


Wouldn't it be better if you did the same as the other relations but instead of defining one id defining 2 ids as in the source and target with their own display names together with a common key shared between both ids. This way you could define a relation between 2 invoices as a 1:1 relation as following:


"common_key": "cr243_invoice_credit_note",

"source": { "id": "cr243_invoice", "Display Name": "Invoice", "Entity": "cr243_invoice" },

"target": { "id": "cr243_credit_note", "Display Name": "Credit Note", "Entity": "cr243_invoice" }


Of course with all the other necessary information as the value and OData and stuff.