2013-04-26 58 views
0

我從頭開始並且從未通過模型首先完成數據庫創建。在visual studio中首先通過模型創建實體框架工作

到目前爲止,我有幾個表。

**Departments** 
departmentID INT PK 
name string 
description string 
owner string 

Navigation Properties -> Functions (FK on departmentID) 

**Functions** 
functionID int PK 
departmentID int FK 
name string 
description string 
owner string 

Navigation Properties -> Departments (FK on depaertmentID) 

我正在添加一個名爲Process的新表。

**Process** 
proceddID int PK 
name string 
description string 
owner string 

難道我創建ProcessFunctions關聯?如果我確實創建了從0​​到Functions的關聯,它是否會像這樣鏈接?

Departments.Functions.Process?

或者我需要創建一個從ProcessFunctionsDepartments的關聯?

如果需要此信息。

部門可以有很多功能

功能必須連接到一個部門,但可以有許多進程。

進程必須附加到一個函數,但可以有很多過程。

Visual Studio 2010中 SQL Server 2008中 實體框架5.0

+0

所以是功能流程多對多?或者是進程在'1'(進程) - 'n'(進程)關係中使用sef-referencing? (「程序」一詞有點混淆)。 – 2013-04-27 15:49:47

+0

每個功能可能有很多過程。一個進程總是會被攻擊到一個函數。 @GertArnold – 2013-04-29 03:05:36

回答

1

所以,你有Departments ⎯ᗕ Functions ⎯ᗕ Processes

這是足有FunctionProcess之間的一個一對多的關聯(Process有一個外鍵Function)。相反的關係(Function.Process)不是必需的,但它取決於您的業務邏輯,無論您是否需要它。

Process和Department之間的關聯是多餘的,因此不推薦使用。

要想從部門啓動進程,你可以這樣做:

from d in context.Departments 
from f in d.Functions 
from p in f.Processes 
select .... 

context.Departments 
     .SelectMany(d => d.Functions) 
     .SelectMany(f => f.Processes) 
     .Select(...) 
相關問題