我有一个使用Model First方法创建的模型。当我尝试使用上下文访问Book实体时,它没有列在那里;但是销售商品已列出。为了将Book实体添加到上下文中,需要做哪些更改?
注意:请阅读Adding reference to entity causing Exception和Entity Framework: Get Subclass objects in Repository了解详情。
模型
代码
static void Main(string[] args)
{
string connectionstring = "Data Source=.;Initial Catalog=NerdDinners;Integrated Security=True;Connect Timeout=30";
using (var db = new MyModelFirstTestContainer(connectionstring))
{
Book book = new Book();
book.AvailabilityStatus = "Available";
book.Price = 100;
book.Title = "World visit";
//db.
}
答案 0 :(得分:2)
实体框架不会为您的Context上的继承项创建单独的ObjectSet。
相反,您可以像这样使用OfType<T>()
方法:
from b in db.SellingItems.OfType<Book>()
where b.Title = "my title"
select b;
以下是OfType
的MSDN文档如果要添加继承的实体,则将使用父ObjectSet。
Book b = ...;
db.SellingItems.Add(b);
db.SaveChanges();
答案 1 :(得分:1)
我不知道你怎么能在那里添加它们,但是你真的想要它吗?
相反,我会使用“db.SellingItems.OfType()”。通过这种方式,您可以请求所有书籍并将其投入使用。如果你调用db.SellingItems,那么你将获得具有适当实例的所有SellingItems。