WCF数据服务:通过外键更新相关对象

本文关键字:更新 对象 数据 服务 WCF | 更新日期: 2023-09-27 18:06:25

我在我的项目中使用WCF数据服务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被分配给真实的Manager对象。

在我的ef数据模型中,我定义了外键:
 modelBuilder.Entity<Company>().HasRequired(t => t.Manager)
     .WithMany(t => t.Companies)
     .HasForeignKey(d => d.Manager_Id);

问题是它仍然抛出由于验证错误(需要manager属性)而无法保存实体的异常。所以我的问题是我怎么能告诉wcf保存所需的属性使用它的外键,如果所需的对象是空的?

解决方案

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

也不起作用

WCF数据服务:通过外键更新相关对象

我找到了变通的解决方案。刚刚在wcf服务端取消了验证。

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