1

私は2つのテーブルを持っています

ユーザー

[Id] INT NOT NULL PK IDENTITY,
[FirstName] nvarchar, 
[LastName] nvarchar

and ACCOUNTS
[Id] INT NOT NULL PK,
[Password] nvarchar,
CONSTRAINT FK_Accounts_Users FOREIGN KEY (Id) REFERENCES [security].[Users] (Id)

ユーザーとプロファイルを同時に追加する必要があります。

EF FulentApi を使用して、次のようなモデルを作成します。

public UserConfiguration()
        {
            ToTable("Users", "Security");
            HasKey(i => i.Id);
            Property(i => i.Id).HasColumnName("Id");
            Property(i => i.FirstName).HasColumnName("FirstName");
            Property(i => i.LastName).HasColumnName("LastName");

            HasRequired(i => i.Account).WithRequiredPrincipal(i => i.User);
}

public AccountConfiguration()
        {
            ToTable("Accounts", "Security");
            HasKey(i => i.Id);
            Property(i => i.Id).HasColumnName("Id");
            Property(i => i.Password).HasColumnName("Password");

            HasRequired(i => i.User).WithRequiredDependent();
}

次に、アカウントを持つユーザーを追加すると、null アカウントを追加できます。つまり、このコードは機能します

using(var db = new SecurityDbContext())
            {
                var user = db.Users.Add(new User
                                            {
                                                FirstName = "John",
                                                LastName = "Rambo"
                                            });
                db.SaveChanges();
            }

UserConfiguration モデルで Account を必要に応じて設定した場合、Account が null になるのはなぜですか?

では、ユーザーとアカウントを 1:1 の関係にするにはどうすればよいでしょうか?

前もって感謝します。

4

0 に答える 0