Fallow是(WPF Windows)应用程序详细信息
- 数据库是SQLite,使用ADO.net实体框架作为ORM
- DB非常小,DB的最大大小可能在600到800 KB之间,大约15到20个表
- 在所有方案中,数据库仅由服务器XML文件更新(即xml将转换为ORM类型,并将通过实体FW推送到数据库)
- 因此,不会使用来自上层的ORM对象来更新数据库,因为我们必须从XML文件重新生成ORM对象以将其更新为DB
醇>
根据这些要求,我目前所做的是
- 数据上下文不可用于除DB层之外的任何控制器,因此没有控制器能够向DB更新任何内容(也无法通过导航属性从对象导航),因为只有可能来自网络层< / LI>
- 我正在将ORM类型转换为其他虚拟类型,例如:如果ORM具有员工类(从框架生成),我会将其转换为Employee Type并将其发送到上层(这将不具有任何将出现在ORM类型雇员中的导航属性,将由控制器和所有其他层使用,当从网络层接收到xml时,它将被发送到DB层,后者将生成相应的ORM类型并更新DB
- 因为我将它转换为虚拟类型我不再需要担心数据上下文生命时间,并且不需要每次在不同方法中重新创建对象并且所有查询操作都委托给DB层
这种做法好吗?
醇>
注意:这是一个多线程和高度异步的Windows应用程序
所以我的问题是
是将orm类型转换为另一种类型是解决问题的好方法吗?