0

次のデータベースがあります。

CREATE TABLE [dbo].[Application] (
    [ApplicationId]   INT            IDENTITY (1, 1) NOT NULL,
    [Name] NVARCHAR (MAX) 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 (MAX) NOT NULL,
    [DataVersion] ROWVERSION,
    CONSTRAINT [PK_dbo.TestAccount] PRIMARY KEY CLUSTERED ([TestAccountId] ASC),
    CONSTRAINT fk_AccountApplication FOREIGN KEY (ApplicationId) REFERENCES Application(ApplicationId)
);

私のデータベースにはもっと多くのテーブルがありますが、これらだけを含めています。

EF Fluent API を使用して fk_AccountApplication 関係をモデル化する方法を教えてもらえますか?

データ注釈でこれを行うのはどうですか。その方がやりやすいですか?人々がこれらの関係を確立するための最も一般的な方法は何ですか? 注釈または Fluent API を使用しますか?

4

1 に答える 1

1

個人的には、データ注釈を使用する方が簡単だと思いますが、他の人が私に同意しないと確信しています (それぞれに)。

データ注釈に関する限り、これを行う方法は次のとおりです。

Application オブジェクトには、次のものが含まれている必要があります。

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ApplicationID { get; set; }

public virtual ICollection<TestAccount> TestAccounts { get; set; }

次に、TestAccount に次の 2 つのプロパティを含める必要があります。

[ForeignKey("Application")]
public int ApplicationID { get; set; }

public virtual Application Application { get; set; }

これは、それらの間に FK リンクがあることを EF に伝える必要があります。

于 2013-03-05T04:50:25.963 に答える