- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个非常简单的服务器模型,其中包含一个带有 [Composition] 子实体列表的父实体。在我的客户中,我有两个功能。一个函数从父实体中删除所有子实体,另一个函数删除所有子实体并编辑父实体的属性。
当我简单地删除所有子实体和 SubmitChanges() 时,一切都很好。
当我删除所有子实体并编辑父实体和 SubmitChanges() 时,当 SubmitChanges() 回调被触发时,仍有待处理的更改 (HasChanges == true)。
我正在使用 Silveright 4 RTM 和 RIA Services 1.0 RTM。
任何想法这里发生了什么?
以下是服务器实体:
public class RegionDto
{
public RegionDto()
{
Cities = new List<CityDto>();
}
[Key]
public int Id { get; set; }
public string Name { get; set; }
[Include]
[Composition]
[Association("RegionDto_CityDto", "Id", "RegionId")]
public List<CityDto> Cities { get; set; }
}
public class CityDto
{
[Key]
public int Id { get; set; }
public int RegionId { get; set; }
public string Name { get; set; }
}
public static class CState
{
private static RegionDomainContext _domainContext;
public static RegionDomainContext DomainContext
{
get
{
if (_domainContext == null)
{
_domainContext = new RegionDomainContext();
}
return _domainContext;
}
}
public static void SaveChanges()
{
DomainContext.SubmitChanges(op =>
{
if (DomainContext.HasChanges && !DomainContext.IsSubmitting)
{
var w = new ChildWindow();
w.Content = "The DomainContext still has unsaved changes.";
w.Show();
}
}, null);
}
}
public partial class MainPage : UserControl
{
private void ClearCitiesEditRegion(object sender, RoutedEventArgs e)
{
var region = (RegionDto)regionList.SelectedItem;
if (region != null)
{
region.Name += "*";
while (region.Cities.Count > 0)
{
region.Cities.Remove(region.Cities.First());
}
CState.SaveChanges();
}
}
private void ClearCities(object sender, RoutedEventArgs e)
{
var region = (RegionDto)regionList.SelectedItem;
if (region != null)
{
while (region.Cities.Count > 0)
{
region.Cities.Remove(region.Cities.First());
}
CState.SaveChanges();
}
}
}
最佳答案
我在 Silverlight 论坛上收到了对此的回答。显然这是 RIA Service 1.0 中的一个错误。以下是Matthew's response on the Silverlight forums .
Yes, I've confirmed this is a bug. Thanks for reporting it and providing the repro. As you discovered, the bug will only repro in composition scenarios where the parent has been modified in addition to one or more children. The workaround is to do an explicit AcceptChanges if the submit was successful. For example, here is the code you'd write in a submit callback:
if (!submitOperation.HasError)
{
((IChangeTracking)ctxt.EntityContainer).AcceptChanges();
}
This will accept all changes and reset change state correctly.
关于silverlight - 在 SubmitChanges 完成后,DomainContext 有时仍为 HasChanges,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2899696/
我有一个 Linq-to-SQL RIA 服务和一个 silverlight 客户端。当 2 个人编辑同一个实体时,我在调用 SubmitChanges 时在 OnSubmitCompleted 中收
我正在使用 Silverlight4 和 Ria 服务: 假设我们有一个包含 3 条记录(1、2、3)的表(称为“MyTable”),我刚刚在我的应用程序中的某处编写了以下代码: CurrentIte
我正在开发 Silverlight 应用程序。我在我的应用程序中创建了静态 DomainContext,所以每个 DomainContext 只有一个。当我使用应用程序一段时间时,DomainCont
背景:Silverlight 4 - RIA - Entity Framework 4 描述:我有一些删除代码: db.Items.Remove(selectedItem); db.SubmitCha
如果您引用任何开发的 Silverlight MVVM 示例,您会发现每个 ViewModel 都有自己的 DomainContext。但是,我真的不认为需要 ViewModel 特定的 Domain
我有一个非常简单的服务器模型,其中包含一个带有 [Composition] 子实体列表的父实体。在我的客户中,我有两个功能。一个函数从父实体中删除所有子实体,另一个函数删除所有子实体并编辑父实体的属性
我有一个 Silverlight 页面,它从 View 模型类中获取数据,该类聚合了来自各种(RIA 服务)域服务的一些数据。 理想情况下,我希望页面能够将其控件数据绑定(bind)到 View 模型
对于 Entity Framework 上下文,最佳做法是只在您需要时才保留上下文。 Silverlight Domain Context 是否同样如此,还是将其保留更长时间“更安全”?如果您可以将它
我使用带有过滤器描述符的 DomainDataSource,但似乎 DomainDataSource(或 DomainContext)正在缓存旧数据,而不是用数据库中的新数据替换它。
将 Silverlight 3 与 RIA 结合使用:LoadOperation.Completed 事件与通过 DomainContext.Load 方法使用回调有何区别?两者都是异步触发的,并且都
我有一个 silverlight 4 应用程序,它使用带有 EF 的 RIA 来查询单个 DomainContext 中的多个表。 BUGroup、BUGroupBuilding 和 vwBusine
我是一名优秀的程序员,十分优秀!