0

我目前正在使用 ASP.NET MVC 3 处理 Intranet 应用程序项目。主要要求之一是使用该应用程序创建的所有数据也必须在客户的 ERP 软件中可用;他们使用 MS Dynamics NAV。访问数据并不是真正的问题,因为 NAV 使用 SQL-Server 作为其数据库。

事实上,我已经有了一个工作原型,它使用实体框架进行数据访问。这里的主要问题是我的公司还在 ERP 中开发了很多自定义功能,因此我必须读取和写入的一些数据库表经常更改。在通常情况下,这实际上不是问题,但在这里,数据库中的每个字段都标记为not null,这是 Dynamics NAV 的一个非常烦人的功能。这意味着添加到表中的每个字段都会破坏我的代码,因为实体框架会在不知道字段时尝试插入 null。

你们中的任何人都可以想到在每次更改表格后不需要重新生成模型的解决方案吗?

编辑:不幸的是,我们的客户端仍然使用 4.0 版的 Nav,所以 web 服务不是一个选项。我已经为他们开发了另一个应用程序(在移动终端上运行的仓库管理系统的一部分),直接访问 SQL Server,但它是不完全一样的规模。

4

1 回答 1

3

如果您的要求是与 Dynamics NAV 等 ERP 集成,您应该通过其应用程序服务器传递所有数据访问。我认为 Dynamics NAV 公开了用于与应用程序服务器通信的 Web 服务。直接访问其表是一种灾难,尤其是由于事务和可能的死锁。EF 会使情况变得更糟,因为您将无法调整查询。

通过数据库集成应用程序需要完全控制所有访问应用程序生成的 SQL。

您的主要问题的答案是否定的。数据库优先开发的重点是在每次数据库修改后重新生成模型 - 特别是如果每​​次数据库修改都发生重大变化(通过数据库集成对您来说不是一个好的选择的另一个原因)。

于 2011-12-09T11:02:26.237 回答