views:

40

answers:

1

I'm designing a very simple database for my application and it's configured like this:

Employee
Carnet
Name
LastName

Area
Name

Document
ID
Employee (FK)
Project (FK)

Project
ID
Company (FK)
Title

Company
Name
CEO (FK)
NIT

Person
Carnet
Name
Lastname

Now the gist of this question is, an Area can have many Document; and a Document can belong to many Area.

This I'm told, creates a third relationship table, correct?

What would go in that table and would this be able to work if I'm going to be using Linq-to-SQL as the only tool for accessing my database.

+1  A: 

Yes... You'd have a table called AreaDocuments with columns called AreaID and DocumentId. This kind of relationship is M x N where M instances can be associated to N instances and vice-versa.

Sample data:

AreaId      DocumentId
1           1
1           2
2           1
2           2

How to handle it in code:

Document document1 = new Document();
document1.Id = 1;
document1.Title = "Whatever";

Document document2 = new Document();
document2.Id = 2;
document2.Title = "Whatever";

Area area1 = new Area();
area1.Documents.Add(document1);
area1.Documents.Add(document2);

Area area2 = new Area();
area2.Documents.Add(document1);
area2.Documents.Add(document2);

This link How to implement a many-to-many relationship using Linq to Sql? can provide more information about using this kind of relationship in LINQ to SQL.

Leniel Macaferi