当运行我在我们的生产服务器或其他开发人员机器上编写的一些代码时,它会在这条线上崩溃。
Ac_CalcDetail xy = db.Ac_CalcDetails.Where(chld => chld.CalcIdent.Equals(CalcIdent)).First();
CalcIdent 只是一个字符串形式的 guid。
我已经在我的本地数据库上运行了 sqlmetal,其中 Ac_CalcDetail 是我们创建强类型代码和 Ac_CalcDetail 类的主表。问题是当我在生产服务器或其他开发人员的一台机器上运行代码时。我们已经使用 LINQ 一年多了,从来没有遇到任何问题,所以对此感到非常困惑。以前我得到的异常非常具体,说哪个字段丢失了,哪个字段很棒,但从我的研究来看,这个错误显然可能是某个字段具有错误的数据类型。噩梦,完全不可能通过这个错误进行调试。
我认为目前唯一的解决方案是在 SQL Server Management Studio 中备份我的数据库,然后让其他人使用它。由于我们是一家小公司,我们倾向于对我们自己的数据库做任何我们想做的事情,然后创建各种 SQL 脚本放在一个保管箱文件夹中以使我们的数据库同步(或者至少我们认为是同步的)。不确定这是否意味着我们要么必须停止使用 LINQ,要么开始使用一些更高级的 SQL 东西(SQL 存储库或 SQL 数据库比较工具等)。
这很奇怪,因为我知道我们的数据库多年来(如果有的话)并不完全一样,所以不知道为什么现在会发生这个错误以及为什么错误消息没有说明任何内容!