小编ben*_*ben的帖子

调试LINQ to SQL SubmitChanges()

我很难尝试调试LINQ to SQL并提交更改.

我一直在使用http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx,它非常适合调试简单查询.

我在我的项目的DataContext类中使用我的应用程序中的以下代码段:

JobMaster newJobToCreate = new JobMaster();
newJobToCreate.JobID = 9999
newJobToCreate.ProjectID = "New Project";
this.UpdateJobMaster(newJobToCreate);
this.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

当我运行this.SubmitChanges时,我会发现一些非常奇怪的例外;

Index was outside the bounds of the array.
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪进入我无法进入的位置:

at System.Data.Linq.IdentityManager.StandardIdentityManager.MultiKeyManager`3.TryCreateKeyFromValues(Object[] values, MultiKey`2& k)
   at System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache`2.Find(Object[] keyValues)
   at System.Data.Linq.IdentityManager.StandardIdentityManager.Find(MetaType type, Object[] keyValues)
   at System.Data.Linq.CommonDataServices.GetCachedObject(MetaType type, Object[] keyValues)
   at System.Data.Linq.ChangeProcessor.GetOtherItem(MetaAssociation assoc, Object instance)
   at System.Data.Linq.ChangeProcessor.BuildEdgeMaps()
   at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
   at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
   at System.Data.Linq.DataContext.SubmitChanges()
   at JobTrakDataContext.CreateNewJob(NewJob job, String userName) in D:\JobTrakDataContext.cs:line 1119
Run Code Online (Sandbox Code Playgroud)

有没有人有他们使用的工具或技术?我错过了一些简单的事吗?

编辑:我使用Slace的建议设置.net调试,但.net 3.5代码尚不可用:http://referencesource.microsoft.com/netframework.aspx

EDIT2:根据sirrocco的建议,我已经改为InsertOnSubmit,仍然会出现同样的错误. …

linq debugging linq-to-sql

21
推荐指数
3
解决办法
3万
查看次数

Crystal Reports与ReportViewer的优点/缺点?

我们一直在围绕VS2008中的Crystal Reports设计我们的Web应用程序报告,我刚刚发现了Microsoft提供的ReportViewer控件.我已经搜索了一下但是找不到每种产生报告方法的优缺点.

我正在寻找有关的利弊:

  • 易于开发
  • 易于部署
  • 能够导出数据
  • 易于支持并在网上寻求帮助

reporting crystal-reports

16
推荐指数
2
解决办法
2万
查看次数

如何在设计.rpt期间使Crystal Reports页面宽度更大

我正在寻找一种方法来调整页面宽度Crystal Reports让我在我的.rpt文件中放置字段.

到目前为止,我发现如果我右键单击报告,选择"设计"/"打印机设置",我可以选择我希望报告打印出来的纸张大小.如果我选择"方向/横向",我可以增加页面的宽度,我可以在报告上放置更多字段.

我的目标:将我的所有字段放在我的报告中(大约25个)并将数据导出到Excel.现在我没有足够的宽度来放置.rpt文件中的所有字段.

有没有办法将页面的宽度增加到任意数字?

crystal-reports

10
推荐指数
2
解决办法
9万
查看次数

使用单元测试项目进行CLR SQL存储过程测试

我刚刚开始使用VS2008为SQL 2008编写clr存储过程.在编写c#代码时,我习惯于单独的"测试项目",我将放置所有单元测试代码,但是我乍一看似乎是与存储过程的clr sql项目不能具有相同的设置.感觉就像这样可以做到,而且我缺少一些配置参数,但我不确定那些可能是什么.

我在用

  • Visual Studio 2008
  • MS测试
  • MS SQL 2008

我的要求是:

  1. 在visual studio调试器中调试存储过程
  2. 有一堆单元测试来测试存储过程

有谁知道如何让单元测试项目正确解密存储过程到服务器,连接到SQL服务器,并允许我单步执行单元测试到服务器上的存储过程?

********更新

感谢大家到目前为止的答案,但他们并不是我正在寻找的东西.

下面的Mark Seemann的答案是一个我不了解的有趣方法,在将数据库重置为已知状态时我肯定会使用.但是,我正在寻找调试CLR存储过程,并且它没有出现Mark的方法将允许我从我的单元测试项目,到SQL服务器,并调试位于服务器上的代码.

我希望实际调试服务器上的C#,就像下面列出的解决方案pho3nix一样.但是,使用此标准方法,您需要使用"Test.sql"文件编写测试脚本,而不是使用Visual Studio中的单元测试项目.

我希望我的解决方案中有两个项目,一个用于我的CLR存储过程,另一个用于我的单元测试项目.当我想在我的单元测试项目中运行我的测试时,我希望对我的CLR存储过程项目所做的所有更改都将发布到服务器,测试项目将开始执行,如果我在CLR中设置了一个断点单元测试开始测试存储过程时它将在服务器上中断,然后我可以逐步执行代码.

到目前为止,我发现的最接近的解决方案是Alex Kuznetsov和Alex Styler,但是使用这个解决方案我无法进入SQL服务器.

****更新2****

这更像是一个让人回答这个问题的"磕磕绊绊"...我仍然没有从单元测试中踩到SQL服务器的运气.还有其他想法吗?

sql clr unit-testing stored-procedures

9
推荐指数
1
解决办法
4326
查看次数

CrystalReportViewer按钮使用MVC框架破坏

我们使用MVC框架(第5版)和CrystalReportViewer控件来显示我们的报告.我无法使报表查看器控件顶部的任何按钮工作.

如果我正在使用报告'HoursSummary'.如果我将鼠标悬停在IE浏览器查看器上的任何按钮上,则页面底部显示的链接为"../HoursSummary".这会创建一个" http:// localhost/HoursSummary " 的网址.没有'HoursSummary'控制器,所以我一直收到404错误.

  • 我相信我想重定向到' http:// localhost/reports/HoursSummary ',因为我有一个报告控制器.如果这是正确的方法,是否有人知道我应该在CrystalReportViewer控件上设置哪个属性才能实现?
  • 有没有更简单的方法来处理这种情况?

asp.net-mvc crystal-reports

5
推荐指数
1
解决办法
3908
查看次数

ASP.NET MVC NuGet Glimpse删除 - 一瞥参考仍然列在HTTP_COOKIE中

我在我的ASP.NET MVC应用程序中使用了Glimpse,并且此后决定将其删除.我最初通过NuGet安装它并使用NuGet删除它.

似乎一切都消失了,除非我检查我仍然看到的cookie:

HTTP_COOKIE glimpseState = null; glimpseOptions = NULL; glimpseClientName = NULL; ASP.NET_SessionId = ....

::我在错误上从ELEMAH转储中提取上述内容.::

关于如何删除glimpseState = null的任何想法; glimpseOptions = NULL; glimpseClientName = NULL; 从饼干?我在app.configs/machine.configs/iis configs中搜索过,但没找到任何东西.

asp.net asp.net-mvc httpcookie glimpse

3
推荐指数
1
解决办法
2462
查看次数

MvvmCross Android - 重新加载片段时ViewModel的空引用

源代码 - https://github.com/benhysell/V.FlyoutTest/

问题 - 在混合片段和基本视图并使用设备上的设置时 - "开发人员选项/不保持活动"如果调用OnDestory(),则ViewModel为null,然后将活动带回视图.这会导致空引用异常和应用程序崩溃.

说明 我使用MvvmCross在Android中有一个滑出/汉堡菜单.在应用程序启动时,将执行以下步骤:

  • HomeViewModel设置为加载
  • HomeViewModel加载HomeView设置滑出/汉堡菜单
  • 由于HomeView从未真正显示过,只需管理它调用的片段并显示EnterTimeViewModel,默认视图以及我们真正关心的视图.
  • 在加载HomeView结束时,使用messenger插件生成一条消息,以"登录"到系统
  • 在EnterTimeViewModel中收到消息,通常在这里我们会进行某种检查以查看我们是否已登录,但在这种情况下,我们只需使用LoginViewModel调用ShowViewModel来模拟登录请求并提示用户.

  • LoginViewModel不是一个fragement,只是一个普通的基本视图.它向用户显示

  • 在发生这种情况时,HomeView正在从系统中删除,因为我们设置了"开发人员选项/不保留活动"
  • 用户通过登录登录进入系统,在演示中这是一个无操作,它只是关闭LoginView
  • 然后恢复HomeView,除了在恢复期间,EnterTimeViewModel为null ...当EnterTime视图尝试访问EnterTimeViewModel时,将触发null引用.

在加载和卸载HomeView时,关于MvvmCross转换的事件序列如下:

  • 在OnCreate
  • StartActivityForResult
  • 的OnStart
  • 的onResume
  • 在onPause
  • 的onSaveInstanceState
  • 调用OnStop
  • 的OnDestroy

登录后显示登录屏幕

  • 在OnCreate
  • 的OnStart
  • 崩溃,null引用异常

感觉好像跳过了几个步骤,导致崩溃.想法?去看的地方?

作为参考,我基于滑动菜单的项目,https://github.com/jamesmontemagno/Xam.NavDrawer表现出同样的问题.

更新 实施了修复http://benjaminhysell.com/archive/2014/06/mvvmcross-flyoutnavigation-hamburger-menu-sliding-menu-for-android-null-reference-exception-on-fragment-shown-fix/,tldr - 负责尝试保存ViewModel,最坏的情况是重新创建它们,如果片段是从内存中卸载的.

xamarin.android android-fragments mvvmcross

3
推荐指数
1
解决办法
2222
查看次数