データベースに次のテーブルがあります。外部キーを設定しようとしていますが、これが正しく行われているかどうかわかりません。私が持っているのは、テーブル[Application]とテーブル[TestAccount]の関係です。たとえば、3つの異なる[Application]行があり、それぞれに0個または多数の[TestAccount]行があります。[TestAccount]行が既に存在する場合、[Application]行を削除できないようにします。
これが私のSQLです
CREATE TABLE [dbo].[Application] (
[ApplicationId] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[DataVersion] ROWVERSION,
CONSTRAINT [PK_dbo.Application] PRIMARY KEY CLUSTERED ([ApplicationId] ASC)
);
CREATE TABLE [dbo].[TestAccount] (
[TestAccountId] INT IDENTITY (1, 1) NOT NULL,
[ApplicationId] INT,
[Name] NVARCHAR (50) NOT NULL,
[DataVersion] ROWVERSION,
CONSTRAINT [PK_dbo.TestAccount] PRIMARY KEY CLUSTERED ([TestAccountId] ASC),
CONSTRAINT fk_AccountApplication FOREIGN KEY (ApplicationId) REFERENCES Application(ApplicationId)
);
私はこれをEF用に構成しようとしていますが、これまでのところ次のようになっています。
modelBuilder.Entity<Application>()
HasKey(a => a.ApplicationId);
Property(a => a.ApplicationId).
HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).
IsRequired();
modelBuilder.Entity<Application>().
Property(a => a.Name).
IsRequired().
HasMaxLength(50);
modelBuilder.Entity<TestAccount>()
HasKey(a => a.TestAccountId);
Property(a => a.TestAccountId).
HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).
IsRequired();
modelBuilder.Entity<TestAccount>().
Property(t => t.Name).
IsRequired();
データベース内の外部キーを使用してこれを正しく実行しているかどうか、また、FluentAPIを使用して外部キーを構成する方法を教えてもらえますか。