草庐IT

c# - 为什么 Entity Framework 会尝试选择所有列,即使我只指定了两个列?

我继承了一个ASPMVC项目,该项目使用EntityFramework6.1.3与DynamicsCRM2011SQL数据库进行交互。我正在使用此查询来尝试获取所有具有帐号的事件帐户,并且我只选择两列为匿名类型:varresults=context.Accounts.Where(a=>(a.AccountNumber!=null)&&(a.StateCode==(int)AccountState.Active)).Select(a=>new{a.AccountId,a.AccountNumber});(context是DbContext,Accounts是DbSet,Account定义

c# - 为什么我的 .Net 应用程序只使用单个 NUMA 节点?

我的服务器有2个NUMA节点,每个节点有16个CPU。我可以在任务管理器中看到所有32个CPU,前2行中的前16个(NUMA节点1)和最后2行中的下16个(NUMA节点2)。在我的应用程序中,我使用Thread.Start()启动了64个线程。当我运行应用程序时,它是CPU密集型的,只有前16个CPU忙,其他16个CPU空闲。为什么?我经常使用Interlocked.Increment()。这可能是一个原因吗?有什么方法可以在特定NUMA节点上启动线程吗? 最佳答案 除了gcserver,我们还应该启用GCCpuGroup和Thre

c# - 在c#中只过滤excel文件

我正在使用C#处理excel工作表,但我很惊讶只能选择excel工作表。我尝试了以下代码OpenFileDialogbrowseFile=newOpenFileDialog();browseFile.DereferenceLinks=true;browseFile.Filter="Excel|*.xls|Excel2010|*.xlsx";//browseFile.Filter="LinkFiles(*.lnk)|*.lnk";browseFile.Title="BrowseExcelfile";if(browseFile.ShowDialog()==DialogResult.Canc

C#,如何只获取GET参数?

System.Web.HttpContext.Current.Request.Params似乎返回了太多参数,包括header等...我怎样才能有效地只检索GET或POST参数? 最佳答案 对GET参数使用Request.QueryString集合,对POST参数使用Request.Form集合。例如varsomeValueFromGet=Request.QueryString["YourGetPara"];varsomeValueFromPost=Request.Form["YourPostPara"];请引用http://msd

c# - LINQ 连接如何只选择第一条记录?

我希望在下面的连接查询中仅从“CustomerSubOwners”表中选择第一条记录,并且想知道在LINQ中实现此目的的最佳方法是什么。p>varresult=(fromt1indb.Casesfromt2indb.CustomerSubOwners.Where(o=>t1.CustomerId==o.CustomerId&&o.Expiry>=DateTime.Now).DefaultIfEmpty()selectt1); 最佳答案 我认为您正在寻找Take像这样的方法:varresult=(fromt1indb.Casesfro

c# - 当我使用 is 运算符时,为什么 IL 代码中只有空检查?

我想知道运算符是如何在C#中实现的。我写了一个简单的测试程序(没什么特别的,只是为了演示目的):classBase{publicvoidDisplay(){Console.WriteLine("Base");}}classDerived:Base{}classProgram{staticvoidMain(string[]args){vard=newDerived();if(disBase){varb=(Base)d;d.Display();}}}查看生成的IL代码:.methodprivatehidebysigstaticvoidMain(string[]args)cilmanaged

c# - 为什么在移位 32 位值时只使用移位操作数的低五位? (例如(UInt32)1 << 33 == 2)

考虑以下代码:UInt32val=1;UInt32shift31=val它不会生成警告(关于使用大于32的类次),因此它一定是预期的行为。实际输出到生成的程序集中的代码(或者至少Reflector对代码的解释)是uintval=1;uintshift31=valIL(再次使用Reflector)是L_0000:nopL_0001:ldc.i4.1L_0002:stloc.0L_0003:ldloc.0L_0004:ldc.i4.s0x1fL_0006:shlL_0007:stloc.1L_0008:ldloc.0L_0009:stloc.2L_000a:ldloc.0L_000b:ld

c# - 确保 NHibernate SessionFactory 只创建一次

我编写了一个NHibernateSessionFactory类,它包含一个静态NhibernateISessionFactory。这用于确保我们只有一个session工厂,并且第一次调用OpenSession()时我创建了实际的SessionFactory-下次我使用它并在其上打开一个session。代码如下所示:publicclassNhibernateSessionFactory:INhibernateSessionFactory{privatestaticISessionFactory_sessionFactory;publicISessionOpenSession(){if(_

c# - 如何让正则表达式匹配只添加一次到匹配集合中?

我有一个字符串,其中有几个html注释。我需要计算表达式的唯一匹配项。例如,字符串可能是:varteststring="Hithere";我目前使用它来获取匹配项:varregex=newRegex("");varmatches=regex.Matches(teststring);这是3场比赛的结果。但是,我希望只有2个匹配项,因为只有两个唯一匹配项。我知道我可能可以遍历生成的MatchCollection并删除额外的Match,但我希望有一个更优雅的解决方案。澄清:示例字符串大大简化了实际使用的内容。X8或X9很容易出现,字符串中可能每个都有几十个。 最佳

c# - 如何使正则表达式只匹配完全匹配项?

好的,基本上我有一些代码可以通过正则表达式匹配URL。然后它将根据URL匹配的正则表达式调用一些函数。我从不想为一个URL调用多个函数,我希望正则表达式匹配必须是“精确的”例如,对于简单的URL/我使用一个简单的正则表达式/它将匹配/但它也会匹配诸如/foo和/foo/bar。如何在C#/.Net中防止这种部分匹配行为? 最佳答案 使用^匹配字符串的开头,使用$匹配字符串的结尾。例如:^/$匹配/但不匹配/foo。并且^/匹配/foo但不匹配foo/。 关于c#-如何使正则表达式只匹配完