Проблема с INSERT - PullRequest
       43

Проблема с INSERT

1 голос
/ 28 марта 2010

Я так расстроен из-за этой проблемы, ты не представляешь ...

У меня есть 2 класса: Пост и Комментарий . Я использую поддержку EF 4 POCO, в моей модели .edmx нет столбцов внешнего ключа (класс комментариев не имеет свойства PostID, но имеет свойство Post)

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'; столбец не допускает пустых значений. Вставить не удается.

... этот столбец 'PostID', конечно, является внешним ключом для таблицы Posts.

Любая помощь будет оценена!

1 Ответ

1 голос
/ 28 марта 2010

Хорошо, спустя долгое время я наконец понял это.

Я использовал подход только с кодом из Entity Framework Feature CTP 3 вместо файла .edmx. Вот ссылка на текст, который мне помог:

http://blogs.msdn.com/efdesign/archive/2009/10/12/code-only-further-enhancements.aspx

...