【发布时间】: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 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<Strategico.Eals.Services.Models.EalsLogEvent>的属性 -
@Jehof,是的,确实如此。如果我在控制台应用程序中编写示例代码,我可以查询
LogEvents。 -
您不是偶然尝试通过 wcf 方法公开数据库上下文或数据库集吗?
-
您能否提供定义
LogEvents的示例代码以及您如何尝试使用它? -
@bpiec 我已经添加了一个例子,它的价值。抱歉,也将标签从
wcf-binding更改为wpf-binding。
标签: c# entity-framework wcf entity-framework-6 data-binding