在我的 `Context` 上找不到 `DbSet` 的 Getter 属性

Posted

技术标签:

【中文标题】在我的 `Context` 上找不到 `DbSet` 的 Getter 属性【英文标题】:Getter properties not found for `DbSet`s on my `Context` 【发布时间】:2015-04-10 03:59:24 【问题描述】:

我有一个DbContext 由我在 Windows 服务中“托管”的 WCF 服务的 WPF 客户端使用。现在,我不知道这与什么有关,在 WPF 客户端中,当我使用设计器在我的SchedulerView 上放置一个SchedulerLogView 时,它显示为一个红十字,在某个地方我可以提取错误留言

MissingMethodException: Method not found: 'System.Data.Entity.DbSet`1<Strategico.Eals.Services.Models.EalsLogEvent> Strategico.Eals.Data.Context.EalsDbContext.get_LogEvents()'.

这告诉我LogEventsget 访问器丢失了。框架库的一部分怎么会丢失?

LogEventspublic classpublic classEalsDbContext: DbContext` 中定义:

public DbSet<EalsLogEvent> LogEvents  get; set; 

public class LogViewModel内部使用:

public ObservableCollection<EalsLogEvent> LogEvents  get; set; 
...
using (var db = new EalsDbContext())

    var dbEvents = db.LogEvents.Where(e => e.PkId > max).ToList();

...
LogEvents.AddRange(dbEvents);

绑定到DataGrid 内的SchedulerLogView

ItemsSource="Binding LogEvents"

【问题讨论】:

EalsDbContext 是您自己的实现还是第三方?在VS的ObjectBrowser或代码文件中查看EalsDbContext是否有LogEvents类型为System.Data.Entity.DbSet&lt;Strategico.Eals.Services.Models.EalsLogEvent&gt;的属性 @Jehof,是的,确实如此。如果我在控制台应用程序中编写示例代码,我可以查询 LogEvents 您不是偶然尝试通过 wcf 方法公开数据库上下文或数据库集吗? 您能否提供定义LogEvents 的示例代码以及您如何尝试使用它? @bpiec 我已经添加了一个例子,它的价值。抱歉,也将标签从 wcf-binding 更改为 wpf-binding 【参考方案1】:

我认为您必须添加对EntityFramework.dll 的引用。我遇到过同样的问题。事实证明,您需要 EntityFramework.dll 参考(而不是 System.Data.Entity

Install-Package EntityFramework

【讨论】:

可能确实是这样,但现在我无法重现该问题,直到解决更重要的问题。我之前的描述有问题。

以上是关于在我的 `Context` 上找不到 `DbSet` 的 Getter 属性的主要内容,如果未能解决你的问题,请参考以下文章

在我的手机上找不到 apk 使用的本机库

使用 NUnit+Reflection,在我的 ActiveX 控件上找不到任何事件

Docker Build 在 GitLab 上找不到 GradleWrapperMain 但可以在我的笔记本电脑上使用

我使用 hybris cms cockpit 在我的 hybris 新创建的 b2b 网站上找不到页面

在 Android 上找不到 SQLite db 文件

PyCharm 在 Mac 上找不到 Tesseract