第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ModelState.isValid()== False +必填符號

ModelState.isValid()== False +必填符號

C#
繁華開滿天機(jī) 2021-04-07 13:11:50
我正在為我的項目使用Identity框架,JobExperience并向User類添加了一些屬性。用戶應(yīng)該有加入的可能性,JobExperience他們的User。自然地,這意味著aJobExperience不能不存在而存在User。因此,我在JobExperience課堂上使用[Required]表示法JobExperience類public class JobExperience{    public int JobExperienceId { get; set; }    public string Employer { get; set; }    public DateTime? DateOfEmployment { get; set; }    public DateTime? DateOfExit { get; set; }    public ICollection<Subject> Subjects { get; set; }    [Required]    public virtual User ApplicationUser { get; set; }}用戶類別public class User : IdentityUser{    public Boolean Available { get; set; }    public Boolean ActivelySeeking { get; set; }    public Boolean AcceptedUseOfData { get; set; }    public int ExpectedHourlySalary { get; set;}    public Boolean Gender { get; set;}    public DateTime? DateOfBirth { get; set; }    public String FirstName { get; set; }    public string LastName { get; set; }    public ICollection<JobExperience> JobExperiences { get; set; }    public ICollection<Language> Languages { get; set; }    public ICollection<Certificate> Certificates { get; set; }}腳手架JobExperienceController-創(chuàng)建方法[HttpPost][ValidateAntiForgeryToken]public ActionResult Create([Bind(Include = "JobExperienceId,Employer,DateOfEmployment,DateOfExit")] JobExperience jobExperience){    var UserId = User.Identity.GetUserId();    jobExperience.ApplicationUser = db.Users.Where(x => x.Id == UserId).First();    if (ModelState.IsValid)    {       db.JobExperiences.Add(jobExperience);       db.SaveChanges();       return RedirectToAction("Index");    }    return View(jobExperience);}添加了Required-notation后,create方法中的modelstate.isValid()返回false。我猜想它需要收到用戶的參考,但我不知道如何去做。當(dāng)前嘗試是所示的LINQ表達(dá)式。ApplicationUserDb public class ApplicationUserDb : IdentityDbContext<User>{    public virtual DbSet<JobExperience> JobExperiences { get; set; }    public virtual DbSet<Language> Languages { get; set; }    public virtual DbSet<Certificate> Certificates { get; set; }    public ApplicationUserDb() : base("DefaultConnection")    {    }
查看完整描述

1 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗 獲得超7個贊

您希望將User<->之間的關(guān)系建模JobExperience為1(必需)<-> 0-N(可選列表)。通過將ApplicationUser標(biāo)記為,您將無法實現(xiàn)此目的[Required]。而是在中配置多重性約束ModelBuilder并刪除[Required]屬性。


ModelBuilder.Entity<User>()

   .HasMany(u => u.JobExperiences)

   .WithRequired(j => j.ApplicationUser)

   .WillCascadeOnDelete(true);


進(jìn)一步說明,您應(yīng)該引入ViewModels而不是將實體模型綁定到控制器。這樣,您就不會混合用于前端驗證的[Required]注釋(例如)和用于數(shù)據(jù)持久化的注釋(例如[ForeignKey])。


如果User繼承自IdentityUser,則還請確保base.OnModelCreating(modelBuilder)在您的ModelBuilder中調(diào)用(請參見EntityType'IdentityUserLogin'未定義密鑰。為此EntityType定義密鑰 )。


查看完整回答
反對 回復(fù) 2021-04-24
  • 1 回答
  • 0 關(guān)注
  • 230 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號