数年間データベースに集中した後、プログラミングに戻ります。私は VB6 で銃を持っていましたが、.Net では苦労しています。
既存のデータベースから MVC で Web アプリを構築しようとしています。私は大まかにこれに従っています:http://msdn.microsoft.com/en-us/data/gg685489.aspx
Visual Web Developer Express 2010 10.0.40219.1 SP1Rel を使用しています。さまざまなテンプレートとプラグインのバージョンを確認する方法がわかりません。
既存のデータベースからエンティティ データ モデルを生成しています。使用している 3 つのテーブルには主キーと外部キーが定義されていますが、インポートすると、データ モデルに関連付けが作成されません。
データベース対応の Web アプリを構築するには、さまざまな方法があるようです。構文にもっと精通していれば、今では手作業でコーディングできたはずです。
Q1: 関連付けが作成されない理由を教えてください。
Q2: コード ジェネレーターにすべてがどのように適合するかを伝えるために関連付けが必要かどうかを確認できますか? (つまり、コードで適切なメソッドを自動生成します)。そうでなければどのように機能するかわかりません。
Q3: 関連付けを手動で作成してビルドすると、エラーが発生します。関連付けを作成すると、エンティティ ('CustomerCustomer_ID) に対してプロパティが作成され、これを何かにマップする必要があるようです。ただし、「テーブル マッピング」を押すと、これがマップするリストになく、追加できません。
Error 1 Error 3004: Problem in mapping fragments starting at line 198:
No mapping specified for properties Task.CustomerCustomer_ID in Set Tasks.
An Entity with Key (PK) will not round-trip when: Entity is type [zzzz.Task]
Error 2 Error 11009: Property 'CustomerCustomer_ID' is not mapped.
関連付けを生成すると予想される 2 つのテーブルの要約 DDL を次に示します。
CREATE TABLE [dbo].[Customers](
[Customer_ID] [int] IDENTITY(1,1) NOT NULL,
[Customer_Name] [varchar](50) NOT NULL,
........
....
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
([Customer_ID] ASC))
CREATE TABLE [dbo].[Tasks](
[Task_ID] [int] IDENTITY(1,1) NOT NULL,
[TaskType_ID] [int] NOT NULL,
[Emp_ID] [int] NOT NULL,
[Customer_ID] [int] NOT NULL,
[Status_ID] [int] NOT NULL,
[Task_Desc] [varchar](300) NULL,
.....
..
CONSTRAINT [PK_Tasks] PRIMARY KEY CLUSTERED
(
[Task_ID] ASC
)
ALTER TABLE [dbo].[Tasks] WITH CHECK ADD CONSTRAINT [FK_Tasks_Customers]
FOREIGN KEY([Customer_ID])
REFERENCES [dbo].[Customers] ([Customer_ID])
GO