所以我仍然堅持我一直在努力的審計表。sql server審計表第一個代碼MVC
這些都是我的模型:
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: DbContext{
modelbuilder.Entity<Profile>()
.hasoptional(e => e.User)
.withrequired(u => u.Profile);
}
在我的種子,這是我爲我的第一個用戶/管理員做:
var admin = new User{
Id = 1,
Email = '[email protected]',
Password = 'woop',
Profile = new Profile {
Name = 'admin name',
AuditById = 1,
AuditOne = DateTime.Now
}
}
所以,我得到這個錯誤:
"Unable to determine a valid ordering for dependent operations. Dependencies may exist due to fk constraints, model requirements, or store generated values"
我明白AuditById導致它保持爲1,這在Save中仍然不存在。有沒有辦法解決這個問題?或者有關如何建模用戶和配置文件表的建議?即使沒有用戶,我也需要該配置文件存在,並且用戶無法在沒有配置文件的情況下存在。
感謝您的幫助,謝謝!
是的它是一個僞代碼,但我在dbcontext上使用modelbuilder分配了密鑰。 – gdubs