C#Lambda表达式和NHibernate

我是NHibernate这个伟大世界的新手。 我使用的是2.0.1.GA版。 这是我的问题。 我有一个带有Manufacturer(nvarchar(50))和一个主键ID(int) 。 我的.NET类是: public class Car { public virtual int ID { get; set; } public virtual string Manufacturer { get; set; } } 现在,如果我想要检索梅赛德斯制造的所有汽车,我必须输入: using (var session = OpenSession()) { var cars = session .CreateCriteria(typeof(Car)) .Add(Restrictions.Like(“Manufacturer”, “Mercedes”)) .List(); // … } 我不喜欢这样的事实,我需要将属性名称指定为字符串:(是否可能有更多的重构友好(这只是一个建议)? var ms = session .CreateCriteria() .Add(c => c.Manufacturer, Restrictions.Like(“Mercedes”) […]

初学者的报告查看器教程?

我正在使用VSTS 2008 + C#+ .Net 3.5 + SQL Server 2008 + ASP.Net + IIS 7来开发Web应用程序。 任何快速且易于学习的报表查看器教程 – 我想根据SQL Server 2008中的数据生成报表。基本的设计和实现function很好,此时无需学习有关报表审阅者的高级主题。

HTTPErrorexception在服务器上运行webapi与在本地运行时不显示消息

我有一个在IIS7.5服务器上运行的webapi。 它有3个控制器,所有3个控制器都可用于从我的应用程序中的调用访问webapi。 我有一个错误,我的控制器的基类将其function公开,而不是保护。 这导致服务器抛出内部服务器错误500(因为抛出了无效的exception“找到了与请求匹配的多个操作”)。 我花了一段时间来深入研究它,因为它从未触发过我的webapi的日志记录。 从这里的讨论中,我发现发生的错误发生在Application_Error函数捕获它以记录它之前。 所以我将以下代码添加到我的webapi的global.asax中,现在我可以记录这样的错误。 但是,我现在的问题是,当我在运行我的webapi的本地机器上导致内部服务器错误500时,我得到一个日志,我希望看到它的“ExceptionMessage”“找到匹配的多个操作”请求“拼写为内部服务器错误的原因。 但是当将这个确切的代码部署到服务器并从那里使用webapi时,我的日志只显示“消息”:“发生错误”并且没有向我显示“ExceptionMessage”,即使我可以看到exception是使用PerfView抛出。 我只需要能够获取我的服务器日志以显示与本地日志显示的信息相同的信息。 public class ResponseExceptionTrapper : DelegatingHandler { protected override Task SendAsync( HttpRequestMessage request, CancellationToken cancellationToken) { return base .SendAsync(request, cancellationToken) .ContinueWith(response => { var result = response.Result; if (!result.IsSuccessStatusCode) { var exceptionResult = string.Format( “Response exception: \r\n Path({0}) \r\n Status({1}) \r\n”, request.RequestUri, result.StatusCode); if (result.Content != […]

如何重载是编译时间和覆盖是运行时?

乡亲 我遇到了许多用于理解多态性的线程(编译时和运行时)。 我很惊讶地看到一些程序员声称重载是Runtime而Overriding是编译时间的链接。 我想从这里知道的是: 运行时多态性与REAL TIME示例和小代码以及我们应该使用的场景。 编译时间多态性与REAL TIME示例和小代码以及何时使用。 因为我阅读了许多理论定义,但我对理解这一定义并不满意。 另外,我想一想,我也觉得,重载应该是运行时因为,因为我有一个计算Area的方法,在运行时只根据我传递的参数决定调用哪个重载方法(如果我只通过则说一个参数,它应该触发Square,如果参数是2,它应该触发Rectangle)….所以不是它我可以声称它的运行时? 它的编译时间如何? (大多数人说理论上,重载是编译时间,但他们甚至没有给出一个正确的实时例子……很少有人声称它的运行时间)…. 另外,我觉得压倒一切是编译时间,因为在编写代码和编译时,确保使用虚拟关键字并在派生类中覆盖该方法,否则会给出编译时错误。 所以我感觉它的编译时间,就像我在一个线程中看到的那样…..但大多数线程声称它的运行时:D 我很困惑:(这个问题是我的问题1和2的补充。请帮助一个实时的例子..因为我已经知道理论定义…. 🙁 谢谢….

SqlConnection如何管理IsolationLevel?

这篇MSDN文章指出: 隔离级别具有连接范围范围,并且一旦设置为与SET TRANSACTION ISOLATION LEVEL语句的连接,它将保持有效,直到连接关闭或设置了另一个隔离级别。 关闭连接并返回到池时,将保留最后一个SET TRANSACTION ISOLATION LEVEL语句的隔离级别。 重新使用池连接的后续连接使用在连接池时生效的隔离级别。 SqlConnection类没有可以保持隔离级别的成员。 那么连接如何知道在哪个隔离级别运行? 我问这个的原因是因为以下情况: 我在Serializable模式下使用TransactionScope打开了一个事务,比如“T1”。 打开T1的连接。 T1完成/处理,连接返回连接池。 在同一连接上调用另一个查询(从连接池获取后),此查询以可序列化模式运行! 问题: 汇集连接如何知道与之相关的隔离级别? 如何将其还原回其他一些事务级别??? 解析度: 池化连接返回可序列化隔离级别的原因是由于以下原因: 你有一个连接池(让我们说CP1) CP1可能有50个连接。 从CP1中选择一个连接C1并使用Serializable执行它。 此连接现在已设置其隔离级别。 无论您做什么,都不会重置(除非此连接用于执行不同隔离级别的代码)。 执行查询后,C1(Serializable)返回CP1。 如果再次执行步骤1-4,则使用的连接可能是除C1之外的其他连接,假设为C2或C3。 因此,它的隔离级别也将设置为Serializable。 因此,慢慢地,Serialzable在CP1中设置为多个连接。 当您执行未进行显式隔离级别设置的查询时,从CP1选择的连接将决定隔离级别。 例如,如果此类查询请求连接并且CP1使用C1(Serializable)执行此查询,则此查询将在Serializable模式下执行,即使您未明确设置它。 希望能够澄清一些疑惑。 🙂

TFS 2010:如何使用标签在两个版本的应用程序之间生成更改日志(即工作项列表)?

我正在寻找一种方法来自动生成我的应用程序的两个版本之间的更改日志(实际上是工作项列表)。 我有两个版本的应用程序,v1和v2,每个版本都由TFS 2010(LABEL1和LABEL2)中的标签标识,我在构建应用程序的设置之前手动创建了该标签。 我有一个分支系统,这意味着我有一个主干,大多数错误是固定的,并且一个分支,其中补丁主要使用来自主干的合并(但是在分支上也有一些修复只与主干无关) 。 我的应用程序的两个版本(v1和v2)是分支的版本。 我希望TFS 2010能够返回这两个标签之间已修复的错误列表(即,类型= Bug的工作项列表已关闭并validation)。 我尝试使用TFS 2010的Web UI或使用Visual Studio实现此目的,但我没有找到任何方法。 然后我尝试使用以下命令行向tf.exe询问历史记录: tf history /server:http://server_url/collection_name “$/project_path” /version:LLABEL1~LLABEL2 /recursive /noprompt /format:brief 其中LABEL1是与应用程序的v1的源代码关联的标签,LABEL2是与应用程序的v2的源代码关联的标签。 它实际上以两种方式失败: – 命令行只返回变更集列表,而不是关联的已关闭工作项列表 – 变更集列表仅包含我在分支本身上应用的变更集,而不是我也应用的变更集然后将主干合并到分支机构。 设置与否“/ slotmode”参数不会改变任何内容。 在那里,我尝试编写一段C#代码来检索工作项列表(而不是变更集列表): var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(“http://server_url/collection_name”)); VersionControlServer controlServer = tfs.GetService(); VersionControlServer vcs = tfs.GetService(); VersionSpec sFrom = VersionSpec.ParseSingleSpec(“LLABEL1”, null); VersionSpec sTo = VersionSpec.ParseSingleSpec(“LLABEL2”, null); var […]

Web浏览C# – 库,工具等 – 像Perl中的Mechanize一样吗?

寻找与Mechanize for .NET类似的东西…… 如果您不知道Mechanize是什么.. http://search.cpan.org/dist/WWW-Mechanize/ 我会在这里保留一份建议清单。 浏览/发布/屏幕抓取的任何内容(WebRequest和WebBrowser控件除外)。 解析 HTMLAgilityPack – http://www.codeplex.com/htmlagilitypack Web应用程序测试 WatiN – Web应用程序测试框架(.NET) – http://watin.sourceforge.net/ Selenium – http://seleniumhq.org/ 测试设计canvas的艺术 – 花钱 工具 适用于Firefox的Firebug 适用于IE的Internet Explorer开发人员工具栏 Chrome也有 注意 WatiN接近我正在寻找的东西,除了它打开一个浏览器,这是令人讨厌和令人敬畏的同时。 取决于你在做什么。

如何在文本框中显示气球提示?

我有一个使用XAML和MVVM的C#WPF应用程序。 我的问题是:如何在文本框上方显示用户输入的某些无效数据的气球工具提示? 我想使用Microsoft的本机气球控件 。 我如何将其实现到我的应用程序中?

如何在c#MVC身份validation中获取google plus个人资料图片

我正在开发一个使用Google登录作为默认提供程序的C#ASP.NET MVC 5应用程序。 登录function正常,我可以获得用户的电子邮件和名称。 我需要的一件事是获取用户的个人资料图片。 我怎样才能做到这一点? 到目前为止,我使用默认的MVC auth“UseGoogleAuthentication”。 Microsoft.Owin.Security.Google.GoogleAuthenticationOptions a = new Microsoft.Owin.Security.Google.GoogleAuthenticationOptions(); var googleOption = new GoogleAuthenticationOptions() { Provider = new GoogleAuthenticationProvider() { OnAuthenticated = (context) => { var rawUserObjectFromFacebookAsJson = context.Identity; context.Identity.AddClaim(new Claim(“urn:google:name”, context.Identity.FindFirstValue(ClaimTypes.Name))); context.Identity.AddClaim(new Claim(“urn:google:email”, context.Identity.FindFirstValue(ClaimTypes.Email))); return Task.FromResult(0); } } }; app.UseGoogleAuthentication(googleOption); 这就是我可以获取电子邮件地址的方式。 但是个人资料图片怎么样? 我是否需要使用其他forms的身份validation?

捕获HTTP请求

有没有办法使用C#监视和捕获来自计算机的所有传出HTTP请求? 我需要一种独立于浏览器的方式记录访问过的URL。