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服务端取消了验证。
protected override MyDataContext CreateDataSource()
{
_mdc = new MyDataContext(@"blablalba") { TablePrefix = "vcrm_" };
_mdc.Configuration.ValidateOnSaveEnabled = false;
return _mdc;
}