我已将数据库 View 添加到我的实体模型中。现在我试图将一个 ObjectSet
放入我的 ObjectContext
中,这样我就可以访问我的应用程序中的 View 。
对于常规表,我的 ObjectSet
将如下所示:
private ObjectSet<StarVendor> _StarVendor;
public ObjectSet<StarVendor> StarVendor
{
get
{
if ((_StarVendor == null))
{
_StarVendor = base.CreateObjectSet<StarVendor>("Stratus_X_TestEntities.StarVendors");
}
return _StarVendor;
}
}
所以我对我的 View 做了同样的事情:
private ObjectSet<CatalogItemSearch> _CatalogItemSearch;
public ObjectSet<CatalogItemSearch> CatalogItemSearch
{
get
{
if ((_CatalogItemSearch == null))
{
_CatalogItemSearch = base.CreateObjectSet<CatalogItemSearch>("Stratus_X_TestEntities.CatalogItemSearch");
}
return _CatalogItemSearch;
}
}
但是当代码运行时我得到一个异常:
System.InvalidOperationException "The EntitySet name 'Stratus_X_TestEntities.CatalogItemSearch' could not be found"
我知道对于 View 我不需要 ObjectSet
提供的添加/更新/删除功能。
我应该为此使用其他 Set 类型吗?
或者这个错误可能来自与它是一个 View 这一事实完全无关的事情吗?
谢谢
最佳答案
我想指出的是,ObjectSet
API 和 ObjectContext
API 是 Entity Framework 的旧 API,如今通常不再使用。
它是 Entity Framework 4.0 的一部分,那是很久以前的事了(参见 Wikipedia: Entity Framework history)。
2011年Entity framework 4.1版本发布,以后推荐使用DbSet
和DbContext
API。
Entity Framework 的当前生产就绪版本是版本 6,版本 7 正在开发中。
我建议您转移到 Entity Framework 6,您可以使用 Nuget 将其安装到您的 Visual Studio 项目中:EntityFramework 6.1.3
这是一个 article其中有一章介绍了 DbSet
API 与旧 API 相比的差异。请查看“DbContext 和 DbSet 简介”一章。
关于c# - WPF 实体无法创建 View 的 ObjectSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553123/