Я определяю свою модель и отношение аналогично объекту blob и публикую пример как на этой странице.
Когда у меня есть существующий blog
и я хочу добавить новый post
Таким образом, сущностная структура пытается добавить новый blog
с каждым добавлением post
. Например:
var blog = new Blog(){ Name = "MyBlog" };
context.Blogs.add(blog);
context.SaveChanges();
// now I want to add a post to that blog
var post = new Post() { Name = "MyFirstPost", Blog = blog };
context.Posts.add(post);
context.SaveChanges();
На этом этапе структура сущности пытается создать новый Blog
с Name = "MyBlog"
и не распознает, что у меня уже есть blog
.
Поэтому, когда я смотрю в журналы на context.SaveChanges
, я вижу следующее:
INSERT INTO [Blogs] ([ID], [Name])
VALUES (@p0, @p1);
И в этот момент возникает следующее исключение:
Невозможно вставить явное значение для столбца идентификаторов в таблице 'Блоги', когда для IDENTITY_INSERT задано значение OFF.
Очевидно, что он пытается добавить новый Blog
с таким идентификатором, как ID = 0
, который затем завершается ошибкой, потому что ID
генерируется автоматически.
Следовательно, мой вопрос заключается в том, почему EntityFramework не распознает существующий Blog
и пытается добавить новый?