首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测N层架构中ObservableCollection over wcf中更改的poco实体?

如何检测N层架构中ObservableCollection over wcf中更改的poco实体?
EN

Stack Overflow用户
提问于 2013-12-03 19:26:32
回答 3查看 960关注 0票数 0

我的应用程序中有以下几层:数据层(引用模型)业务层(引用模型、数据)模型服务( WCF )-(引用模型、业务层) UI (WPF/Silver Light) -通过WCF服务连接

如何在UI层的ObservableCollection中检测更改的poco实体?从客户端发送回服务器进行保存?而不是将所有数据发送回服务器端(通过WCF)?

如何在UI层对集合中的实体进行增、删、改操作?

我正在使用支持WCF的VS2010/2012 C# EF 5 ADO.NET POCOEntityGenerator (用于从Model.edmx生成.tt模板) SQL Server2012

尽管我找了很多地方都没有找到合适的解决方案。如果你有任何想法,请帮助我。

谢谢..。

下面的链接给出了我创建应用程序所遵循的方法

http://www.toplinestrategies.com/dotneters/net/wcf-entity-framework-and-n-tier-solutions-part-2/?lang=en/comment-page-1/#comment-1954

EN

回答 3

Stack Overflow用户

发布于 2013-12-04 15:05:09

唯一合适的解决方案是手动进行更改跟踪。每个POCO对象都有IsDirty属性,这个对象的每个属性在它的setter中都有IsDirty = true

一种减少手动的方法是创建一个框架,它将创建包装器类,它将为您完成这项工作,但这需要大量的反射和代码生成。此外,它仍然需要将所有属性定义为虚拟属性。

但通常情况下,您希望避免制作需要这种跟踪的UI。当您想要更改一个实体时,在编辑窗口中仅加载该实体。

票数 0
EN

Stack Overflow用户

发布于 2013-12-09 16:30:25

POCO非常适合在客户端和服务器之间传输数据。但是,如果您正在寻找要在客户端和/或服务器端实际使用的对象,则可能需要考虑使用自跟踪实体( self-tracking entities,STE),因为这些实体包含跟踪其实际更改和状态的逻辑。

更好的解决方案是使用N-Tier Entity Framework,它提供了在n层应用程序中使用EF的功能。有关更多详细信息,请参阅http://ntieref.codeplex.com/

票数 0
EN

Stack Overflow用户

发布于 2013-12-03 20:54:32

如果您使用EF,那么您的实体有一个'HasChanges‘标志,您可以在将更改提交到上下文之前对其进行测试。例如:

代码语言:javascript
复制
if (this.CurrentEntity.HasChanges || CurrentEntity.EntityState == EntityState.New)
{
this.SubjectContext.SubmitChanges(Submit_Completed, saveDetails);
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20349860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档