そのため、私が取り組んでいる監査テーブルにまだ行き詰まっています。
これらは私のモデルです:
public interface Audit {
int AuditById {get;set;}
DateTime AuditOn {get;set;}
User AuditBy {get;set;}
}
User {
Id {get;set;}
Email {get;set;}
Password {get;set;}
}
Profile : Audit {
public int Id {get;set;}
public string Name {get;set;}
public int AuditById {get;set;}
public DateTime AuditOn {get;set;}
public User AuditBy {get;set;}
public User User {get;set;}
}
これは、ユーザーに必要なプロファイルがあることを確認するために私の dbase コンテキストにありますが、プロファイルには必要なユーザーがありません。
Dbase: DbContext{
modelbuilder.Entity<Profile>()
.hasoptional(e => e.User)
.withrequired(u => u.Profile);
}
私のシードでは、これが最初のユーザー/管理者に対して行うことです:
var admin = new User{
Id = 1,
Email = 'email@email.com',
Password = 'woop',
Profile = new Profile {
Name = 'admin name',
AuditById = 1,
AuditOne = DateTime.Now
}
}
だから、私はこのエラーが発生しています:
「依存操作の有効な順序を決定できません。依存関係は、fk 制約、モデル要件、または生成された値の保存が原因で存在する可能性があります」
AuditById が原因で、保存時にまだ存在しない 1 になっていることを理解しています。これを回避する方法はありますか? または、ユーザー テーブルとプロファイル テーブルをモデル化する方法について何かアドバイスはありますか? ユーザーがいなくてもプロファイルが存在する必要があり、ユーザーはプロファイルなしでは存在できません。
助けてくれてありがとう!