我在项目中使用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");
也没有效果。
答案 0 :(得分:0)
我找到了解决方法。只需在wcf服务端推出验证。
protected override MyDataContext CreateDataSource()
{
_mdc = new MyDataContext(@"blablalba") { TablePrefix = "vcrm_" };
_mdc.Configuration.ValidateOnSaveEnabled = false;
return _mdc;
}