1

数年間データベースに集中した後、プログラミングに戻ります。私は 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
4

1 に答える 1

1

上に投稿したように、これは私がこの問題を回避した方法です。

残りの不足している関連付けを次のように作成しました。

  1. デザイン サーフェイスを右クリックし、[関連付けを追加]
  2. アソシエーションを定義し、名前を付け、正しいカーディナリティを設定します
  3. [外部キー プロパティを追加] のチェックを外し、[OK] を押します。
  4. ワーク サービスの関連付けをクリックし、プロパティ ページで [参照制約] プロパティをクリックして定義します (プリンシパルは「ルックアップ」側です)。

皆様のお役に立てて感謝していますが、私の問題を再現するのは難しいと思います。

于 2012-10-01T09:07:45.223 に答える