WCF DataServices:通过其外键更新相关对象

时间:2011-08-24 05:09:54

标签: c# wcf entity-framework

我在项目中使用WCF dataservices CTP2 + EF4.1。

我想使用wcf数据服务更新实体对象。 这是我的目标:

    public partial class Company
{
    [Required]
    public virtual User Manager { get; set; }

    public Guid Manager_Id { get; set; }
}

然后我将公司对象转移到服务器,存储wcf服务,Manager属性为null,但其外键Manager_Id被分配给真实管理器对象。

在我的ef数据模型中,我定义了外键:

 modelBuilder.Entity<Company>().HasRequired(t => t.Manager)
     .WithMany(t => t.Companies)
     .HasForeignKey(d => d.Manager_Id);

问题是它仍然抛出了无法保存实体的异常导致验证错误(需要管理器属性)。所以我的问题是如果必需的对象为null,如何告诉wcf使用其外键保存所需的属性?

解决方法

modelBuilder.Entity<Company>().Property(x => x.Manager_Id).HasColumnName("Manager_Id");

也没有效果。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。只需在wcf服务端推出验证。

 protected override MyDataContext CreateDataSource()
    {
        _mdc = new MyDataContext(@"blablalba") { TablePrefix = "vcrm_" };
        _mdc.Configuration.ValidateOnSaveEnabled = false;
        return _mdc;
    }