itnifl
asked on
Entity Framework Code first - Specify minimum one cardinality in a many to many relation
Is there a way in code first to specify in a many to many relation that minimum one entity must exist?
Could you have an inbetween table that had 1:n relations to the other two tables ?
ASKER
Perhaps? If it works?
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.
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.
ASKER
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?
>>never allow one entity without at least one other entitity
I don't understand what you mean by that
I don't understand what you mean by that
ASKER
This relation:
Many to many but never less than one.
Person >|--|< Bills
Many to many but never less than one.
Person >|--|< Bills
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.
With a 1:n relation you need a record in the master table before you can add records to the child table.
ASKER
Here 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:
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?
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; }
, 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?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
OK, thank you. Believing that there is no way to do it in Entity Framework, because there is no source on it anywhere.