在EF4中,有没有办法让未映射的属性跨越线路?

时间:2010-09-23 13:49:30

标签: entity-framework-4

我有一个自定义字段,我已经在shared.cs文件中添加到我的一个EF实体中,如下所示:

public partial class Content
{
    public int Test = 5;
}

在客户端,同一个类的OnCreated处理程序如下所示:

partial void OnCreated()
{
    this.Test = 42;
}

我已经为服务器上下文的SavingChanges事件添加了一个事件处理程序,如下所示:

partial void OnContextCreated()
{
    this.SavingChanges += (sender, e) =>
    {
        foreach (object o in GetChangedEntities())
        {
            if (o is Content)
            {
                // Break to see what the value of Test is;
            }
        }
    }
}

当我打破评论时(这不是我的代码注释:),Test的值总是为5.实际上,我似乎无法在客户端的任何地方将其设置为42并具有该值把它带到服务器。

我已经在所有地方设置了断点,并且客户端的值肯定设置为42。有什么东西我做错了,还是这种行为不受支持?顺便说一下,我也尝试过这个属性而不是字段 - 以防万一。

1 个答案:

答案 0 :(得分:2)

我需要将我的属性/字段标记为[DataMember],如下所示:

public partial class Content
{
    [DataMember]
    public int Test = 5;
}

然后将其从shared.cs文件移到服务器项目中的CustomProperties.cs(或类似)文件,以避免多次延迟。现在它穿过电线就好了。