[英]Unchanged objects in Entity Framework 6
I have silverlight application. 我有Silverlight应用程序。 This is an invoke operation (in Open Ria Service - WCF Ria Service open source version) with Entity Framework 6.
这是使用实体框架6的调用操作(在Open Ria Service-WCF Ria Service开源版本中)。
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();
}
In RemainderVAHelper class I am changing currentAmounts objects, set IsCurrent property to false. 在RemainderVAHelper类我改变currentAmounts对象,IsCurrent属性设置为false。 But currentAmounts objects entityEntry.State are still Unchanged .
但currentAmounts对象entityEntry.State仍然不变 。 Why?
为什么? Yes, I can set their states as Modified (as I am doing in method), but I think it is not very good thing.
是的,我可以将它们的状态设置为“已修改” (就像我在方法中所做的那样),但是我认为这不是一件好事。 Can you tell me why my objects state doesn't changes to Modified ?
您能告诉我为什么我的对象状态没有更改为Modified吗?
如果您不使用更改跟踪代理,则在调用DetectChanges或调用SaveChanges(调用DetectChanges)之前,EF无法知道您是否修改了属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.