Наша компания имеет программное приложение, которое использует
-Entity Framework 4
-Код Первый подход
Приложение, основанное на коде базы данных Entity Framework Database First,однако мы изменили его, чтобы начать использовать подход Code First.
У нас есть некоторые проблемы, аналогичные тем, о которых упоминалось в блоге Alex D James: https://blogs.msdn.microsoft.com/alexj/2009/06/02/tip-22-how-to-make-include-really-include/
Наш старый код, которыйбыл основан на коде Entity Framework Database First, который имел код, подобный следующему:
var results =
((from post in ctx.Posts
from blog in post.Blogs
where blog.Owner.EmailAddress == “alexj@microsoft.com”
select post) as ObjectQuery<Post>).Include(“Comments”);
Однако, поскольку мы перешли на подход Code First, вышеупомянутый пост выдаст следующую ошибку:
Object reference not set to an instance of an object.
Похоже, возникла какая-то проблема, возникшая при переходе от кода базы данных Entity Framework к первому коду
Мы изменили код так, чтобы он выглядел следующим образом:
var results =
(from post in ctx.Posts.Include(“Comments”)
from blog in post.Blogs
where blog.Owner.EmailAddress == “alexj@microsoft.com”
select post);
Однако комментарии, связанные с сущностями Post (т. Е. Свойство Navigation из набора комментариев), не будут «загруженными», что проблематично, поскольку довыдаст следующую ошибку:
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
Может кто-нибудь сказать мне, как мы можем изменить код, чтобы он работал правильно для подхода Entity Framework Code First?