在使用MVC应用程序和针对MySQL的MS Access时记录覆盖

Cap*_*chi 5 c# mysql ms-access odbc entity-framework

一些背景知识:我们开发了客户端MS Access应用程序的ASP.NET MVC端口.应用程序使用/使用MySQL作为ODBC的数据存储.我们遇到的是,如果客户端使用MS Access应用程序捕获新记录,并且在MVC应用程序捕获新记录后不久,MVC应用程序的记录似乎会覆盖Access应用程序创建的最后一条记录,如以及创建第二条记录.

实际上,Access应用程序的记录最初看起来像这样

ID | NAME | SURNAME
1  | joe  | Schmoe  
Run Code Online (Sandbox Code Playgroud)

但是,当MVC应用程序创建其中一条记录时,会发生以下情况:

ID | NAME  | SURNAME
1  | james | smith
2  | james | smith
Run Code Online (Sandbox Code Playgroud)

MVC应用程序似乎覆盖了Access捕获的最后一条记录,以及创建新记录.

我们使用Entity Framework 5.我们所做的就是保存记录

var record = new Person(){NAME = "james", SURNAME = "smith"};
db.People.Add(record);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

只有在客户端使用Access应用程序时才会发生此类事情.并且只有当最后添加的记录来自Access应用程序且新记录来自MVC/EF应用程序时才会发生.

任何输入将不胜感激.

通过Access捕获一系列记录时,不会发生这种情况.通过Entity Framework捕获一系列记录时,它不会发生.首先通过Entity Framework和THEN Access捕获时,不会发生这种情况.它仅在序列为Access first,Entity Framework second时发生.

bub*_*ubi 1

抱歉,没有足够的空间在评论中写这个

一些建议:

  • 您发布的代码不足以理解该问题。至少你可以编写创建/使用数据库的所有代码(只是在using你发布的行之前吗?)

  • 错误可能是从 EF 保存时出现的。您可以开始在每个 SaveChanges 中插入一个断点,甚至是您确定未调用的断点

  • 您可以做的其他事情是将 MySQL 与 SQL Server 交换(您的应用程序也可以与 SQL Server 完美配合,最困难的工作是更改 Access 的链接,EF 已经可以工作)并检查您是否有相同的问题。

  • 如果 DBMS 是 MySQL,则 Access 无法使用任何技巧来写入和读取记录。它只能运行DML和SQL... (2认同)