c# - WPF 实体无法创建 View 的 ObjectSet?

标签 c# wpf entity-framework

我已将数据库 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版本发布,以后推荐使用DbSetDbContext 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/

相关文章:

c# - 找不到命名空间名称 'p'(是否缺少 using 指令或程序集引用?)

c# - 为什么当我使用 JSON.NET 反序列化时会忽略我的默认值?

wpf - Entity Framework - 从数据库刷新对象

entity-framework - Entity Framework 4.3.1 到 5.0 RC - 模型创建期间出现 NullReferenceException

C# 扩展接口(interface)实现作为参数来委托(delegate)采用基接口(interface)

c# - 即使文件存在,Web 浏览器导航也被取消

wpf - WPF 资源的范围 : Is pushing it to application scope (app. xaml) 对性能有好处吗?

c# - 如何在for循环中增加小时数

c# - 将可观察集合绑定(bind)到上下文菜单

entity-framework - 用于开发和生产的不同种子