将对象映射到数据库实体的方法

本文关键字:实体 方法 数据库 对象 映射 | 更新日期: 2023-09-27 18:27:59

我必须创建一个从Excel到数据库的导入。我创建了一个小系统,将我的excel文件映射到某种"excel实体"。其中一些实体包含多个数据库表的信息,对于其他实体,我需要计算数据库中的id等。我正在使用实体框架将数据库映射到对象。

现在我的问题是,我需要一种干净的方法来映射我的卓越结构和数据库结构。

有什么模式可以干净地解决这个问题吗?我不想检查每个属性是否已经更改,。。。我只需要将数据库与我的Excel同步即可。但是excefile并不像我的数据库模式。

如果有人知道如何解决问题的模式或方法,那就太好了。

将对象映射到数据库实体的方法

在我看来,您实际上有两个问题需要解决:1)将excel文件中的信息转换为一个好的模式;以及2)同步数据库。如果您正在考虑实体框架,看起来您已经很好地控制了#2。要解决#1问题,您很可能需要创建一个解析器,该解析器可以填充在#2解决方案中创建的实体。

TL;DR:将文件解析与同步分离。首先获取所有对象,然后更新数据库。

编辑:接下来你必须创建一个映射器。可以通过属性名称链接两个对象的东西。查看"反射"、"扩展方法"和对映射器的更通用的搜索。我会创建这样的东西:

object1.Map("Property1",object2,"Property2");

object1是数据库实体,Property1是要映射到的属性的名称,object2是excel实体,Property2是要从中映射的属性的名字。

PS:如果扩展方法正确,您可以"链式"映射:object1.Map("Property1", object2, "Property2").Map("Property3", object3, "Property4")

等等。您甚至可以选择不同的对象进行映射。