我有类似的东西:
public class RelatedRequest{
public RelatedRequest(int Id){
RelatedRequestId = Id;
}
public int RequestId {get; set;}
public int RelatedRequestId {get; set;}
public string comment {get; set;}
}
另一类喜欢:
public class Request{
public int Id{get; set;}
internal virtual ICollection<RelatedRequest> InternalRelatedRequests { get; } = new List<RelatedRequest>();
}
我有Request类的表,其中 Id 是表中的主键。 相关请求列的表格为: RequestID (外部KEY与来自请求的 Id 相同), RelatedRequestId (外部KEY与 ID相同来自Request),Comment(string)。
我正在使用Fluent API进行EF配置:
public class RequestConfiguration : EntityTypeConfiguration<Request> {
public RequestConfiguration() {
HasKey(r => r.Id);
HasMany(r => r.InternalRelatedRequests).WithOptional().HasForeignKey(rr
=> rr.RequestId);
}
}
在Db中插入请求对象时,我需要来自请求的新Id,并希望使用来自请求的新Id来更新RelatedRequest对象的relatedRequestId。
我正在做这样的事情:
NewRequestEntity = new Request();
OldRequestEntity.InternalRelatedRequests.Add(new RelatedRequest(newRequest.Id));
DbContext.Set<Request>().Add(NewRequestEntity)
base.SaveChanges();
我总是将RelatedRequestId(newRequest.Id)作为零。因此EF根据外键的声音抛出Dbupdate异常。 我是EF的新手。 cna任何人请解释我在这里发生的事情。