【问题标题】:Entity Framework and a Dynamics NAV database实体框架和 Dynamics NAV 数据库
【发布时间】:2012-01-16 14:50:32
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: sql-server asp.net-mvc-3 entity-framework dynamics-nav


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢您的回答。我已经更新了提供更多细节的问题。我想那时我们将不得不使用原始 SQL。如果客户端有更新版本的 Nav,我会使用 Web 服务。
    • 我也用旧版本的 Navision 开发了一些应用程序,但我们仍然通过应用程序服务器访问它。它使用 MSMQ 进行通信和应用程序特定消息的自定义处理程序。
    • 好的,我得调查一下。这很可能是我的解决方案。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    相关资源
    最近更新 更多