我对RIA服务有一个奇怪的问题。我的EF CodeFirst(v4.1)上下文中有两个实体,Customer
和Address
,它们之间的关系是1:1。
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 Services不会更新ID,导致服务器上出现外键约束错误。我检查了导航属性y和外键在保存时设置为null
。因此,当我将其设置为null
时,RIA Services似乎没有跟踪该属性。我该如何解决这个问题?
编辑:我完全忘了:它适用于我的开发机器,但不适用于部署。