Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在linq to sql中插入子记录后刷新实体_C#_Linq To Sql - Fatal编程技术网

C# 在linq to sql中插入子记录后刷新实体

C# 在linq to sql中插入子记录后刷新实体,c#,linq-to-sql,C#,Linq To Sql,我正在插入与现有父记录关联的子记录。如何刷新父记录以显示所有记录,包括新插入的子记录 context.Refresh(RefreshMode.OverwriteCurrentValues,entity)不起作用 我尝试的一个更完整的例子: Location newLocation = Json.deserialize<Location>(json); if (newLocation != null) { IEnumerable<string> zipCodes =

我正在插入与现有父记录关联的子记录。如何刷新父记录以显示所有记录,包括新插入的子记录

context.Refresh(RefreshMode.OverwriteCurrentValues,entity)
不起作用

我尝试的一个更完整的例子:

Location newLocation = Json.deserialize<Location>(json);
if (newLocation != null) {
    IEnumerable<string> zipCodes = Regex.Split(newLocation.zipCodes, @"[\s,;]+");

    // this verifies the new zipcodes against a table of all US zipcodes and returns matches 
    var newLocationZipCodes = _zipCodeRepository.match(zipCodes).Select(item => new LocationZipCode { idLocation = newLocation.id, state = item.state, zipcode = item.zipcode });

    // get the parent entity
    var domainLocation = _unitOfWork.locationRepository.getFirst(l => l.id == newLocation.id);

    // insert child entities
    if (newLocationZipCodes.Any()) {
        _unitOfWork.locationZipCodeRepository.insertAll(newLocationZipCodes);
        _unitOfWork.saveChanges(ConflictMode.ContinueOnConflict);
    }

    // this isn't working
    _unitOfWork.refresh(RefreshMode.OverwriteCurrentValues, domainLocation);
    return domainLocation;
}

我没有刷新上下文,而是改变了将子记录插入数据库的方式。所以不是

_unitOfWork.locationZipCodeRepository.insertAll(newLocationZipCodes);
我在做这个

domainLocation.LocationZipCodes.AddRange(newLocationZipCodes);
所以更新后的代码看起来是这样的

Location newLocation = Json.deserialize<Location>(json);
if (newLocation != null) {
    IEnumerable<string> zipCodes = Regex.Split(newLocation.zipCodes, @"[\s,;]+");

    var newLocationZipCodes = _zipCodeRepository.match(zipCodes).Select(item => new LocationZipCode { idLocation = newLocation.id, state = item.state, zipcode = item.zipcode });
    var domainLocation = _unitOfWork..locationRepository.getFirst(l => l.id == newLocation.id);

    if (newLocationZipCodes.Any()) {
        domainLocation.LocationZipCodes.AddRange(newLocationZipCodes);
        _unitOfWork.saveChanges(ConflictMode.ContinueOnConflict);
    }

    return new Mapper<DomainLocation, Location>(new LocationMapTemplate()).map(domainLocation);
}
Location newLocation=Json.反序列化(Json);
if(newLocation!=null){
IEnumerable zipCodes=Regex.Split(newLocation.zipCodes,@“[\s,;]+”;
var newLocationZipCodes=_zipCodeRepository.match(zipCodes).Select(item=>newlocationzipcode{idLocation=newLocation.id,state=item.state,zipcode=item.zipcode});
var domainLocation=\u unitOfWork..locationRepository.getFirst(l=>l.id==newLocation.id);
if(newLocationZipCodes.Any()){
domainLocation.LocationZipCodes.AddRange(newLocationZipCodes);
_unitOfWork.saveChanges(ConflictMode.ContinueOnConflict);
}
返回新映射器(new LocationMapTemplate()).map(domainLocation);
}
domainLocation.LocationZipCodes.AddRange(newLocationZipCodes);
Location newLocation = Json.deserialize<Location>(json);
if (newLocation != null) {
    IEnumerable<string> zipCodes = Regex.Split(newLocation.zipCodes, @"[\s,;]+");

    var newLocationZipCodes = _zipCodeRepository.match(zipCodes).Select(item => new LocationZipCode { idLocation = newLocation.id, state = item.state, zipcode = item.zipcode });
    var domainLocation = _unitOfWork..locationRepository.getFirst(l => l.id == newLocation.id);

    if (newLocationZipCodes.Any()) {
        domainLocation.LocationZipCodes.AddRange(newLocationZipCodes);
        _unitOfWork.saveChanges(ConflictMode.ContinueOnConflict);
    }

    return new Mapper<DomainLocation, Location>(new LocationMapTemplate()).map(domainLocation);
}