由于这个问题,我很沮丧,你不知道......
我有2个课程:发布和评论。我使用EF 4 POCO支持,我的.edmx模型中没有外键列(评论类没有 PostID属性,但有 Post属性)< / p>
class Comment {
public Post post { get; set; }
// ...
}
class Post {
public virtual ICollection<Comment> Comments { get; set; }
// ...
}
有人可以告诉我为什么下面的代码不起作用?我想为帖子创建一个新评论:
Comment comm = context.CreateObject<Comment>();
Post post = context.Posts.Where(p => p.Slug == "something").SingleOrDefault();
// post != null, so don't worry, be happy
// here I set all other comm properties and...
comm.Post = post;
context.AddObject("Comments", comm); // Exception here
context.SaveChanges();
例外是:
无法将值NULL插入“PostID”列,表'Blog.Comments';列不允许空值。 INSERT失败。
...这个'PostID'列当然是Posts表的外键。
任何帮助将不胜感激!
答案 0 :(得分:1)
好的,经过很长一段时间我终于明白了。
我使用了Entity Framework Feature CTP 3中的Code Only方法而不是.edmx文件。 这是帮助我的文本的链接:
http://blogs.msdn.com/efdesign/archive/2009/10/12/code-only-further-enhancements.aspx