这对我来说似乎很奇怪。我正在使用EF6加载实体,更改它并保存它。简单的例子如下。
负载:
var clientQuery = from x in Context.Clients
where x.DateTimeCreated > latest_time
orderby x.DateTimeCreated descending, x.IsPosted ascending
select x;
this.Clients = new ObservableCollection<Client>(clientQuery);
int cnt = this.Clients.Count;
TotalPages = cnt / itemsPerPage;
if (cnt % itemsPerPage != 0)
TotalPages += 1;
clientViewSource.Source = this.Clients;
客户有一个关联的实体,为简单起见,我们可以称之为&#34; Case&#34;。加载此查询时,也会加载个案。我可以查看选定的客户端及其Case和所有值。我对该实体进行了一些更改。
this.Client.IsAssigned = true;
this.Client.AssignedUser = (combo_users.SelectedItem as User);
this.Context.SaveChanges();
我使用IValidatableObject类来确保所有值都有效。但是,在检查“客户”时实体,其相关的&#34;案例&#34;在验证期间为null。在点击SaveChanges之前,我已经验证了Context已经发生了变化,而且客户的情况已经发生了变化。不是空的。我在这里遗漏了什么,我希望得到的结果不是用于验证吗?
验证示例:
public partial class Client : IValidatableObject
{
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if(IsStrategic)
{
if(StrategicCase.ExternalLeadSource == null)
{
yield return new ValidationResult
("No external lead source set.", new [] {"StrategicCase.ExternalLeadSource"});
}
}
}
}