首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将实体框架与历史数据结合使用

将实体框架与历史数据结合使用
EN

Stack Overflow用户
提问于 2011-07-07 00:01:02
回答 1查看 5.7K关注 0票数 12

我正在用.Net 4.0构建一个windows应用程序来创建和组织电子项目。该应用程序的主要目的是记录电子元器件的供应商信息(部件号、说明、价格等)。并将它们组织(关联)到项目(成品)中。其中一个需求是跟踪任何给定供应商项目的更改(主要是价格)和项目级别的更改,以提供组件级别和项目级别的更改的时间点统计信息。

考虑到客户端部署的简单性,我决定将Entity Framework4用于我的数据访问层,将SQL CE 3.5用于数据库。数据访问工作得很好,但是当试图创建对象之间的关系(关联)时,框架似乎没有任何明显的方法来使用历史数据。这是我第一次尝试使用entity框架,所以我想可能是我的经验不足导致我找不到答案。这是我的基本模式:

我有3个主要的表:项目、产品和ProjectProduct

Project表和Product表都有一个ID列和一个DateAdded列,它们用作复合键。ProjectProducts表具有其他两个表中每个表的ID,并维护实体之间的多对多关系。relationship表格还有一个DateAdded列,用于跟踪产品/项目关联中的变更。

虽然实体框架在维护使用标准代码生成的数据对象的直接关联(无日期标准)方面似乎工作得很好,但在如何让它加载时间点历史数据模式的关联方面有点令人困惑。本质上,我需要能够根据时间点要求的日期标准加载数据对象(参数化加载)。

有没有人做过类似的事情,并能为我指明正确的方向?

很抱歉长篇大论的解释,但提前感谢您能提供的任何帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-07 00:05:54

我实现了完全相同的东西。使用EF4很容易。您基本上处理了OnSavingChanges事件,并枚举了一组已更改的项,按您的喜好存储它们。

唯一的问题是,获取插入的项目是非常棘手的(除非你没有新项目的主键,而我没有)我决定只跟踪更新和删除。

本文向您展示了如何做到这一点,尽管我的实现要简单得多(我不喜欢在XML中存储更改,所以我为列创建了一个单独的表)。

Implementing Audit Trail using Entity Framework - Part 1

第2部分展示了如何进行回滚,如果您对此感兴趣的话。

Implementing Audit Trail using Entity Framework - Part 2

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6599482

复制
相关文章

相似问题

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