如何扩展dbcontext实体类?

时间:2013-02-21 11:55:23

标签: entity-framework wcf-data-services

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

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

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

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

我想使用新属性(在客户端模型中)扩展Participant。我想我可以用这样的部分类来做这个:

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的新实例时,它失败了。

编辑2:我试图制作一个空的部分类(没有属性)。它仍然会引发同样的错误。

提前致谢

弗雷德里克

1 个答案:

答案 0 :(得分:1)

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