2014-01-09 37 views
0

我有一个奇怪的问题与RIA服务。我的EF CodeFirst(v4.1)上下文中有两个实体,分别为CustomerAddress,彼此之间的关系为1:1。RIA服务不更新空外键

public class Customer 
{ 
    [Key] 
    public int Id { get; set; } 

    // [...] 

    [Include, Association("Customer_BillingAddress", "BillingAddressId", "Id")] 
    public virtual Address BillingAddress { get; set; } 
    public int? BillingAddressId { get; set; } 
} 

public class Address 
{ 
    [Key] 
    public int Id { get; set; } 

    // [...] 
} 

我与模型构建器配置他们像这样:

modelBuilder.Entity<Customer>() 
    .HasOptional(p => p.BillingAddress) 
    .WithMany() 
    .HasForeignKey(x => x.BillingAddressId); 
this blog article描述

。这一切就像一个魅力,但我想这样做在客户端上:

customer.BillingAddress = null; 
customer.BillingAddressId = null; 

RIA服务将不会更新ID,导致服务器上的外键约束的错误。我检查了导航属性和外键在保存时设置为null。因此,看起来,RIA Services在设置为null时没有跟踪该房产。我该如何解决这个问题?

编辑:我完全忘了:它在我的开发机器上工作,但不在部署。

回答

1

Ghch ...找到了答案here。底线:将[RoundtripOriginal]属性应用于Customer类。