0

我已经通过 WCF 数据服务公开了一些从数据库生成的 EF5.0 实体。

数据服务由 WPF 客户端使用,该客户端获取实体(来自数据服务)并将它们存储在本地。我通过创建一个基于 WCF 实体的代码优先实体数据库来做到这一点:

public class LocalRaceContext : DbContext
{
    public LocalRaceContext() { }
    public LocalRaceContext(string connstr) : base(connstr) { }

    public DbSet<Participant> Participants { get; set; }
    .
    .
    . more ...
}

我想使用新属性(在客户端模型中)扩展参与者。我想我可以像这样使用部分类来做到这一点:

public partial class Participant
{
    public virtual List<Stamp> Stamps { get; set; }
}

然而,这不起作用。我是否需要部分类的某种属性?

我收到以下错误:

"The type 'RaceEntities+Participant' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject."

编辑:

@IronMan84:原始模型(没有部分类)有效,因为 EF 代码优先负责数据库和表的创建。实际上它工作得非常好,我可以将 EF 模型保存在本地 SQL CE 文件中,并在以后再次检索对象作为 EF 类。

我想要实现的是在本地保存来自数据服务的数据,但是在一个稍微扩展的模型中。到目前为止,我已经成功了,直到扩展部分。

@Matt Whetton:当我创建 LocalRaceContext 的新实例时它失败了。

Edit2:我试图创建一个空的部分类(没有属性)。它仍然会引发相同的错误。

提前致谢

弗雷德里克

4

1 回答 1

1

EF 尚不支持嵌套类。将 Participant 类移到 RaceEntities 之外。

于 2013-02-22T00:25:41.830 回答