我是Identity framework和Code First方法的新手.现在我在VS 2015上创建一个新的MVC5项目时使用默认项目.
我运行项目时生成的默认表格很好,但我希望它与其他项目一起生成一个名为tbSkills(Id,SkillName)的新表格,它必须与AspNetUsers有多对多的关系.
ps:我在遵循教程后也将Id类型从字符串更改为int,它运行正常.
这是我在IdentityModels.cs文件中的类ApplicationUser中最后尝试过的:
public class ApplicationUser : IdentityUser<int,MyUserLogin,MyUserRole,MyUserClaim>,IUser<int> { public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser,int> manager) { // Note the authenticationType must match the one defined in CookieAuthenticationoptions.AuthenticationType var userIdentity = await manager.CreateIdentityAsync(this,DefaultAuthenticationTypes.ApplicationCookie); // Add custom user claims here return userIdentity; } // // This following is my added code public ApplicationUser() { Skills = new HashSet<tbSkill>(); } public virtual ICollection<tbSkill> Skills { get; set; } } public class tbSkill { public tbSkill() { Users = new HashSet<ApplicationUser>(); } public int Id; public string SkillName; public virtual ICollection<ApplicationUser> Users { get; set; } }
它以此错误结束:
我已经研究过很多文章,但没有成功.
解决方法
尝试添加技能ID
public class ApplicationUser : IdentityUser<int,DefaultAuthenticationTypes.ApplicationCookie); // Add custom user claims here return userIdentity; } // // This following is my added code public ApplicationUser() { Skills = new HashSet<tbSkill>(); } public int SkillId {get;set;} public virtual ICollection<tbSkill> Skills { get; set; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。