2016-11-23 1 views
0

したがって、私は2つのデータベースを持っています。 DB1とDB2。私の 'discountCode'テーブルはDB1にあり、私の 'AspnetUser'テーブルはDB2にあります。私は、 'discountCode'テーブルと 'AspnetUser'テーブルの間でDB1の多対多テーブルを実行したいので、ユーザーが既に特定のディスカウントコードを使用しているため、ユーザーはそれを2回使用できません。異なるデータベースの2つのテーブルの間に多数の多数のテーブルを作成

私はそれらの間の多くのテーブルに多くの正常をやってみましたし、それはこのように行った:私はこの新しい多くを含めることができますので、私はその後、私のエンティティフレームワークmodeldesignを更新したい

CREATE TABLE [dbo].[DiscountUser] (
[DiscountId] INT NOT NULL, 
[UserId] nvarchar(128) NOT NULL, 
[LanguageId] INT NOT NULL, 
CONSTRAINT [PK_DiscountUser] PRIMARY KEY CLUSTERED ([DiscountId] ASC, [UserId] ASC), 
CONSTRAINT [FK_DiscountUser_Discount_DiscountId] FOREIGN KEY ([DiscountId])  REFERENCES [dbo].[DiscountCode] ([Id]) ON DELETE CASCADE, 
CONSTRAINT [FK_DiscountUser_AspNetUsers_Id] FOREIGN KEY ([UserId])  REFERENCES [db2].dbo.[AspNetUsers] ([id]) ON DELETE CASCADE, 
CONSTRAINT [FK_DiscountUser_Language] FOREIGN KEY ([LanguageId]) REFERENCES [dbo].[Language] ([Id]) 

enter image description here

私のC#プロジェクトの多くのテーブル。だから私はこの問題を解決することが重要ですが、私はまだ他のエンティティのように多くのテーブルにこの多くを使用することができます。

まず、この問題について友人に尋ねるまで、私は同じデータベースにすべてのテーブルを置くと思っていました。私の友人はあまり時間がなかった。彼が私に言ったのは、2つのテーブルをまとめてC#コードで結合することだけでした。ただstackoverflowを尋ねて、彼らはあなたにどのように役立つでしょう。だから私はここにいる。どうすればいいですか?私の問題を回避するには、どうすればいいですか?

+0

http://stackoverflow.com/a/8561501/2312877 – Kritner

答えて

0

データベース間に外部キーを設定することはできません。エラーは明らかです。しかし、あなたは依然としてそれらを一緒にクエリに参加させることができます。外部キーによって結合されているという保護は得られません(外部キーなしで、外部テーブルのデータなしで孤立したエントリに終わることがあります)。

最高の単一データベースにそれらを含めることができます。

関連する問題