C#使用多个应用程序使用Entity Framework连接单个数据库

时间:2017-08-19 10:34:45

标签: c# .net sql-server asp.net-mvc entity-framework

我目前正在开发一个Windows表单应用程序,我计划在云设置上运行,应用程序将计算新数据,在数据库中更新,并作为一个控制面板,用于实时数据提供我希望的RestFul API使用ASP.NET MVC 5 Web API创建。

我想知道将这两个独立的应用程序连接到单个数据库是否可行?我不太可能遇到数据库条目冲突问题,因为每个应用程序都有单独的任务来读取或写入某些表的数据。

如果可行意味着每次我更改表格,我都必须更新两个实体框架数据库模型? (不是主要的苦差事)。

有更好的解决方案吗?我是否应该废弃运行Windows窗体应用程序来控制公共API后端的某些元素的想法?

设计这样的东西会有什么未来的问题,如果有的话?

2 个答案:

答案 0 :(得分:2)

创建数据访问层,作为单独的组件。

喜欢DAL.dll

每个应用程序都有一个逻辑层,其中"无论你做什么"被处理。

每个图层现在都使用一种Interfacelayer,它将对象从应用程序的任一层转换为DAL的对象。

现在更改数据库时 - 您只需更新界面层。

(当然,如果您要添加更多功能,则必须更新所有图层,但实际上并没有任何不同。

我建议使用此方法,因为它会使您的调试任务变得更加容易。除非您有大量的通信要求,否则轻微的额外代码开销不会影响性能。

如果你想要更多细节,我需要来自程序和SQL表设计的类的例子。

但你的方法没有错。

答案 1 :(得分:2)

假设你有一个分层架构,那么你有很多选择:

  1. 分享您的数据库,DAL以及业务层
  2. 扩展您的WEB API并在WinForms中使用它
  3. 仅重用DAL(不是最好的方法,因为业务系统不仅是数据,而且 - 行为 - 驻留在业务层中)
  4. 仅分享数据库 - 这是最糟糕的选择,有许多缺点
  5. 参见图像上的选项1和2:

    enter image description here enter image description here