【问题标题】:Getter properties not found for `DbSet`s on my `Context`在我的 `Context` 上找不到 `DbSet` 的 Getter 属性
【发布时间】: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

标签: c# entity-framework wcf entity-framework-6 data-binding


【解决方案1】:

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

Install-Package EntityFramework

【讨论】:

  • 可能确实是这样,但现在我无法重现该问题,直到解决更重要的问题。我之前的描述有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多