在我的 `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()'.
这告诉我LogEvents
的get
访问器丢失了。框架库的一部分怎么会丢失?
LogEvents
在public class
public 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<Strategico.Eals.Services.Models.EalsLogEvent>
的属性
@Jehof,是的,确实如此。如果我在控制台应用程序中编写示例代码,我可以查询 LogEvents
。
您不是偶然尝试通过 wcf 方法公开数据库上下文或数据库集吗?
您能否提供定义LogEvents
的示例代码以及您如何尝试使用它?
@bpiec 我已经添加了一个例子,它的价值。抱歉,也将标签从 wcf-binding
更改为 wpf-binding
。
【参考方案1】:
我认为您必须添加对EntityFramework.dll
的引用。我遇到过同样的问题。事实证明,您需要 EntityFramework.dll
参考(而不是 System.Data.Entity
)
Install-Package EntityFramework
【讨论】:
可能确实是这样,但现在我无法重现该问题,直到解决更重要的问题。我之前的描述有问题。以上是关于在我的 `Context` 上找不到 `DbSet` 的 Getter 属性的主要内容,如果未能解决你的问题,请参考以下文章
使用 NUnit+Reflection,在我的 ActiveX 控件上找不到任何事件
Docker Build 在 GitLab 上找不到 GradleWrapperMain 但可以在我的笔记本电脑上使用