0

私はゼロから始めており、最初にモデルを使用してデータベースを作成したことはありません。

これまでにいくつかのテーブルがあります。

**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

Processからへの関連付けのみを作成しFunctionsますか? Processからへの関連付けを作成するFunctionsと、このように連鎖しますか?

部門.機能.プロセス?

または、 からProcessFunctionsAND への関連付けを作成する必要がありますDepartmentsか?

この情報が必要な場合。

部門は多くの機能を持つことができます

機能は部門に関連付ける必要がありますが、多くのプロセスを持つことができます。

プロセスは関数に関連付ける必要がありますが、多くのプロシージャを含めることができます。

Visual Studio 2010 SQL Server 2008 エンティティ フレームワーク 5.0

4

1 に答える 1

1

だからあなたは持っていDepartments ⎯ᗕ Functions ⎯ᗕ Processesます。

FunctionProcess(Processは への外部キーを持っています) の間に 1 対多の関連付けがあれば十分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(...)
于 2013-04-30T21:11:30.220 に答える