首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF实体不能创建视图的ObjectSet?

WPF实体不能创建视图的ObjectSet?
EN

Stack Overflow用户
提问于 2015-11-05 19:27:16
回答 2查看 201关注 0票数 5

我在实体模型中添加了一个数据库视图。现在,我正在尝试将一个ObjectSet放到我的ObjectContext中,这样我就可以访问应用程序中的视图了。

对于常规表,我的ObjectSet应该如下所示:

代码语言:javascript
复制
private ObjectSet<StarVendor> _StarVendor;
public ObjectSet<StarVendor> StarVendor
{
    get
    {
        if ((_StarVendor == null))
        {
            _StarVendor = base.CreateObjectSet<StarVendor>("Stratus_X_TestEntities.StarVendors");
        }
         return _StarVendor;
    }
}

所以我对我的观点也这么做了:

代码语言:javascript
复制
private ObjectSet<CatalogItemSearch> _CatalogItemSearch;
public ObjectSet<CatalogItemSearch> CatalogItemSearch
{
    get
    {
        if ((_CatalogItemSearch == null))
        {
            _CatalogItemSearch = base.CreateObjectSet<CatalogItemSearch>("Stratus_X_TestEntities.CatalogItemSearch");
        }
        return _CatalogItemSearch;
    }
}

但是当代码运行时,我得到了一个例外:

System.InvalidOperationException“找不到EntitySet名称'Stratus_X_TestEntities.CatalogItemSearch‘”

我知道对于视图,我不需要ObjectSet提供的添加/更新/删除功能。

是否有我应该为此使用的另一种集合类型?

或者,这一错误是否与它的观点完全无关呢?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-11-19 18:36:18

我想指出的是,ObjectSet API和ObjectContext API是实体框架的旧API,现在通常不再使用了。

它是实体框架4.0的一部分,那是很久以前的事了(参见维基百科:实体框架历史)。

2011年,实体框架版本4.1发布,并建议从现在开始使用DbSetDbContext API。实体框架的当前生产准备版本是version 6,version 7正在工作。

我建议您移到实体框架6,您可以使用Nuget:EntityFramework 6.1.3将其安装到Visual项目中

下面是一个文章,其中有一章介绍了DbSet API与旧API相比所带来的差异。看一看“介绍DbContext & DbSet”一章。

票数 2
EN

Stack Overflow用户

发布于 2015-11-16 15:02:25

如果您使用的是CodeFirst,那么始终可以在映射表时映射视图(使用DbSet),然后它就会正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33553123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档