Solved

Entity Framework Code first - Specify minimum one cardinality in a many to many relation

Posted on 2016-09-06
10
85 Views
Last Modified: 2016-09-11
Is there a way in code first to specify in a many to many relation that minimum one entity must exist?
0
Comment
Question by:itnifl
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
10 Comments
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786678
Could you have an inbetween table that had 1:n relations to the other two tables ?
0
 
LVL 2

Author Comment

by:itnifl
ID: 41787447
Perhaps? If it works?
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41787454
In database design that is a typical method for n:n relations.

A possible (not so good) example.  You have multiple invoices and multiple quotes in two tables.  A third table would be customers - one customer can have many invoices and that same one customer can have many quotes.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 2

Author Comment

by:itnifl
ID: 41787558
Sure, but in my case I need to restrict the Many to Many relation via Entity Framework to never allow one entity without at least one other entitity, a cardinality of minimum 1. And my question is, how can I practically in example do that?
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41787838
>>never allow one entity without at least one other entitity

I don't understand what you mean by that
0
 
LVL 2

Author Comment

by:itnifl
ID: 41792839
This relation:
Many to many but never less than one.
 Person >|--|< Bills
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41792873
Still don't understand what you mean with never less than one.

With a 1:n relation you need a record in the master table before you can add records to the child table.
0
 
LVL 2

Author Comment

by:itnifl
ID: 41793166
ERHere you see a Certificate and System.
A System can have zero or many certificates.
A Certificate can  have one or many Systems, but never zero.

1:n is a one to many relationship. With an intermediate table as you say, you can have 1:n relationships to two other tables, creating a many to many relation between those tables through the intermediate table. But is the cardinality enforced?

Actually, in Entity Framework something like that is automatically generated when I use http://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx

But I can via C# in entity framework still have zero entities in lets say:
public virtual ICollection<Student> Students { get; set; }

Open in new window

, but I must enforce that zero entities is never allowed. So I want a Student to have minimum one course, and never allow the student to have zero Courses.

So what I want is Max Cardinality via Entity Framework. http://stackoverflow.com/questions/5104349/what-is-the-difference-between-max-cardinality-and-min-cardinality

Can it be enforced?
0
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 500 total points
ID: 41793181
>>Can it be enforced?

That I don't know.  I have limited experience with Entity but I have a lot of experience of databases.  With a database I'd always use an intermediate table if I required n:n to make it n:1:n in the relationships.
0
 
LVL 2

Author Closing Comment

by:itnifl
ID: 41793485
OK, thank you. Believing that there is no way to do it in Entity Framework, because there is no source on it anywhere.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question