看起来Chainsaw的开发已经在4年前停止了(2006-03-02的最后开发版本)......
任何人都知道提供相同功能的替换工具,但有更新的版本?
在我们的多层业务应用程序中,我们拥有ObservableCollections从服务调用返回的自我跟踪实体.
我们的想法是希望能够从集合客户端获取实体,添加,更新和删除它们,然后将这些更改发送到服务器端,并将它们保存到数据库中.
自我跟踪实体,正如其名称所暗示的那样,可以自己跟踪其状态.当创建一个新的STE时,它具有Added状态,当你修改一个属性时,它设置Modified状态,它也可以有Deleted状态,但是当从一个ObservableCollection(显然)中删除实体时,不会设置这个状态.如果您想要这种行为,您需要自己编写代码.
在我当前的实现中,当从中删除实体时ObservableCollection,我将其保存在阴影集合中,这样当ObservableCollection发送回服务器时,我可以发送已删除的项目,因此实体框架知道删除它们.
有点像:
protected IDictionary<int, IList> DeletedCollections = new Dictionary<int, IList>();
protected void SubscribeDeletionHandler<TEntity>(ObservableCollection<TEntity> collection)
{
var deletedEntities = new List<TEntity>();
DeletedCollections[collection.GetHashCode()] = deletedEntities;
collection.CollectionChanged += (o, a) =>
{
if (a.OldItems != null)
{
deletedEntities.AddRange(a.OldItems.Cast<TEntity>());
}
};
}
Run Code Online (Sandbox Code Playgroud)
现在,如果用户决定将更改保存到服务器,我可以获取已删除项目的列表,并将其发送到:
ObservableCollection<Customer> customers = MyServiceProxy.GetCustomers();
customers.RemoveAt(0);
MyServiceProxy.UpdateCustomers(customers);
Run Code Online (Sandbox Code Playgroud)
此时,UpdateCustomers如果删除了任何项目,该方法将验证我的阴影收集,并将它们发送到服务器端.
这种方法很好,直到你开始考虑这些影子集合的生命周期.基本上,当ObservableCollection收集垃圾时,无法知道我们需要从字典中删除阴影集合.
我提出了一些复杂的解决方案,基本上在这种情况下进行手动内存管理.我保持WeakReference的ObservableCollection,并每隔几秒钟我检查,看看是否引用是无效的,在这种情况下,我删除了阴影集合.
但这似乎是一个可怕的解决方案......我希望StackOverflow的集体天才可以为更好的解决方案提供帮助.
编辑:
最后我决定继承子类化ObservableCollection.生成服务代理代码,因此更改它以返回我的派生类型是一个相对简单的任务.
感谢您的帮助!
lifecycle entity-framework observablecollection self-tracking-entities
我目前正在使用PeformanceCounter Increment方法.如果我在每个事件上调用它,那么PeformanceCounter框架会每秒计算一次事件吗?或者我必须编写代码才能执行此操作?如果是这样,有人有任何例子吗?
谢谢
模拟器的相机在2.1 Eclair拍照时效果很好.显然,没有用的是录制视频.
现在运行的应用程序仅在2.1 Emulator上完美无缺,导致相机应用程序崩溃.我启动了启动它的意图:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(TEMP_PHOTO_FILE)));
startActivityForResult(intent, REQUEST_CAMERA);
Run Code Online (Sandbox Code Playgroud)
这启动了相机应用程序,但几秒钟后它崩溃了.输出是:
06-01 09:57:15.593: DEBUG/libEGL(5212): egl.cfg not found, using default config
06-01 09:57:15.593: DEBUG/libEGL(5212): loaded /system/lib/egl/libGLES_android.so
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): FATAL EXCEPTION: GLThread 11
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): java.lang.IllegalArgumentException: No configs match configSpec
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)
Run Code Online (Sandbox Code Playgroud)
实际上我只是想知道是否已经在FroYo中修复了即使指定了EXTRA_OUTPUT而使您从相机接收到小图像的错误.不幸的是,我甚至没有测试它.
有没有人遇到类似的问题?
谢谢,
斯蒂夫
我正在尝试使用DateField控件.我可以使用selectedDate字段设置当前值.
Adobe说:"在控件中选择当前选择的日期取消选择它,将selectedDate属性设置为null",因此当用户选择其他日期时,selectedDate = null.如何获取当前选定的值?我只在调试器中看到DateField的text属性包含带有选定日期的字符串?我需要解析它吗?
提前10倍yevgeny
我正在考虑使用Google Web Toolkit(GWT)绘制图表的解决方案.到目前为止,我只发现了gwt-diagram项目,但似乎已经放弃了.
有关GWT图表的建议吗?
希望大家都在这里好.
我写一个Windows服务在C#/ VB.Net,旨在测量带宽消耗对所有网站本地主机和存储上传的统计资料,下载等本地/远程数据库.
目标平台仅包括Windows Server 2003,2003 R2,2008和2008 R2.
我已经搜索了一下这个东西,发现了以下内容:
请指导最合适,最安全有效的方法/技术或一组此类技术,这些技术可用于衡量每个不同网站的带宽消耗.
还请分享这方面的任何代码.
问候
史蒂夫
在TDD(Test Driven Development)开发过程中,如何处理测试数据?假设一个场景,解析一个日志文件以获取所需的列.对于强大的测试,我如何准备测试数据?我是否正确地将这些文件放到测试类文件中?