실버 라이트 응용 프로그램이 있습니다. 이 (오픈 리아 서비스에서 - WCF 리아 서비스 오픈 소스 버전)을 호출 작업입니다 엔티티 프레임 워크는 6Entity Framework 6의 변경되지 않은 개체
public List<VaultAmount> GetCurrentVaultAmounts(Guid vaultId)
{
return this.DbContext.VaultAmounts
.Include(v => v.VaultAmountQuantities)
.Include(v => v.VaultCurrency)
.Include(v => v.Vault)
.Include(v => v.VaultAmountQuantities.Select(vaq => vaq.VaultCurrency))
.Where(v => v.VaultId == vaultId && v.IsCurrent).ToList();
}
[Invoke]
public void UpdateVaultRemainders(List<VaultAmountQuantity> updatedQuantities, string comment, Guid userId,
string friendlyName,
Guid vaultAmountId, int currencyId)
{
VaultAmount vaultAmount =
this.DbContext.VaultAmounts
.Include("Vault")
.SingleOrDefault(va => va.VaultAmountId == vaultAmountId);
if (vaultAmount == null && vaultAmount.Vault == null) return;
//Get FromVault and ToVault with amounts and updatedQuantities
List<VaultAmount> currentAmounts = GetCurrentVaultAmounts(vaultAmount.Vault.VaultId);
//Vault vault = GetVaultWithCurrentAmountsAndQuantitiesById(vaultAmount.Vault.VaultId);
var helper = new RemainderVAHelper(currentAmounts, userId, friendlyName, currencyId, updatedQuantities,
comment,
BS2VaultEventTypes.Correction);
//................................
foreach (var amount in currentAmounts)
{
if (amount.IsCurrent == false)
{
DbEntityEntry<VaultAmount> entityEntry = this.DbContext.Entry(amount);
entityEntry.State = EntityState.Modified;
}
}
this.DbContext.SaveChanges();
}
RemainderVAHelper 클래스에서 내가 currentAmounts에게 오브젝트를 변경하고와, 대해 IsCurrent 속성을하는 설정 그릇된. 하지만 currentAmounts 개체 entityEntry.State은 여전히 이고 변경되지 않은입니다. 왜? 예, 상태를 으로 설정할 수 있습니다 (메서드에서 수행함에 따라)으로 처리 할 수 있지만 매우 좋지는 않습니다. 내 물건 상태가 으로 변경되지 않은 이유를 말해 줄 수 있습니까??
이 객체 (DetectChanges를 호출하는) SaveChanges를 호출 할 때까지 당신이 속성을 수정 알 수있는 방법이 없다? – Whoami