正如我在其他几个问题中提到的那样,我目前正在尝试用实体框架替换本土 ORM,因为我们的数据库可以支持它。
目前,我们设置了某些对象,以便将它们映射到我们内部数据库中的一个表和运行我们网站的数据库中的一个表(甚至不在同一状态,更不用说在同一台服务器上)。因此,例如:
Part p = new Part(12345);
p.Name = "Renamed part";
p.Update();
将同时更新内部数据库和 Web 数据库,以反映 ID 为 12345 的零件现在被命名为“重命名零件”。这个逻辑暂时只需要走一个方向(内部->网络)。我们通过 LINQ-to-SQL DBML 及其对象访问 Web 数据库。
我认为我的问题有两个部分,尽管我可能一开始就没有提出正确的问题。
- 是否有任何类型的“OnUpdate()”事件/方法可用于触发“是否应该将其推送到网络?”的验证。然后做推?如果默认情况下没有任何内容,是否有任何其他方法可以
.SaveChanges()
在它到达数据库之间和何时插入逻辑? - 有什么方法可以为每个对象指定它映射到哪个 DBML 对象,以及为每个 EF 自动生成的属性指定 L2S 对象上的哪个属性映射到?这些名字经常匹配,但并不总是如此,所以我不能依赖它。或者,我可以以通用方式修改 L2S 对象,以便它们可以从 EF 对象中填充自己吗?