【发布时间】:2011-09-13 09:46:10
【问题描述】:
每次我运行并尝试创建帖子时都会出现此异常..
我有一个简单的用户、帖子、评论、标签实体。它具有我定义的关系关联。当我检查 innerException 时,它说 "Cannot insert the value NULL into column 'CommentID', table " ... 并指向我定义了关系的上下文..请检查我的关系并帮助我找到我声明在评论 ID 中不允许 null 的地方...
- 1 个用户可以有很多帖子,可以创建很多标签,可以有很多 厘米
- 1 个帖子可以有 1 个用户,多个 cmets,并且可以有多个标签
- 1 个标签可以有 1 个用户,多个帖子
- 1 条评论可以有 1 个用户,1 个帖子
关系...
modelBuilder.Entity<User>().HasMany(p => p.Posts).WithRequired(u => u.Users).HasForeignKey(P=>P.UserID);
modelBuilder.Entity<User>().HasMany(t => t.Tags).WithRequired(u => u.Users);
modelBuilder.Entity<User>().HasMany(c => c.Comments).WithRequired(u => u.Users);
modelBuilder.Entity<Post>().HasRequired(u => u.Users).WithMany(p=>p.Posts);
modelBuilder.Entity<Post>().HasMany(t => t.Tags).WithMany(p => p.Posts);
modelBuilder.Entity<Post>().HasOptional(c => c.Comments);
modelBuilder.Entity<Comment>().HasRequired(u => u.Users);
modelBuilder.Entity<Comment>().HasRequired(p => p.Posts);
modelBuilder.Entity<Tag>().HasRequired(u => u.Users);
modelBuilder.Entity<Tag>().HasMany(p => p.Posts).WithMany(t => t.Tags);
模型 - 用户
[ScaffoldColumn(true)]
[Key]
public int UserID { get; set; }
[StringLength(15)]
[DisplayName("First Name")]
[Required(ErrorMessage="First Name is Required")]
public string FirstName { get; set; }
[StringLength(15)]
[DisplayName("Last Name")]
[Required(ErrorMessage = "Last Name is Required")]
public string LastName { get; set; }
[DataType(DataType.EmailAddress,ErrorMessage="please enter valid email")]
[DisplayName("Email Address")]
[Required(ErrorMessage = "Email is Required")]
[Remote("CheckUniqueEmail","User",ErrorMessage="An account with this email address already exists.")]
public string Email { get; set; }
[DataType(DataType.Password)]
[Required(ErrorMessage = "Password is Required")]
public string Password { get; set; }
[DataType(DataType.Date)]
[ScaffoldColumn(true)]
public DateTime JoiningDate { get; set; }
[DataType(DataType.Date)]
[ScaffoldColumn(true)]
public DateTime? LastActivityDate { get; set; }
public virtual ICollection<Post> Posts { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
模型 - 帖子
[Key]
[ScaffoldColumn(true)]
public int PostID { get; set; }
[Required(ErrorMessage="Required")]
[StringLength(250)]
public string Title { get; set; }
[Required(ErrorMessage="Required")]
[DataType(DataType.MultilineText)]
public string Body { get; set; }
[DataType(DataType.Date)]
public DateTime DateCreated { get; set; }
[DataType(DataType.Date)]
public DateTime DateModified { get; set; }
[ScaffoldColumn(false)]
public int UserID { get; set; }
[ScaffoldColumn(false)]
public int? CommentID { get; set; }
[ScaffoldColumn(false)]
public int? TagID { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual User Users { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
模型 = 评论
[Key]
[ScaffoldColumn(true)]
public int CommentID { get; set; }
[DisplayName("Your Comment")]
public string Body { get; set; }
[DataType(DataType.Date)]
[ScaffoldColumn(true)]
public DateTime DateCreated { get; set; }
[ScaffoldColumn(true)]
public int PostID { get; set; }
[ScaffoldColumn(true)]
public int UserID { get; set; }
public User User { get; set; }
public Post Posts { get; set; }
模型 = 标记
[Key]
[ScaffoldColumn(true)]
public int TagID { get; set; }
[StringLength(15)]
public string Name { get; set; }
[ScaffoldColumn(true)]
public int UserID { get; set; }
public User Users { get; set; }
public ICollection<Post> Posts { get; set; }
【问题讨论】:
-
你能把你的模型贴在这里吗?
标签: asp.net-mvc entity-framework entity-framework-4