小编DSF*_*DSF的帖子

为什么!0是Microsoft中间语言(MSIL)中的一种类型?

在许多MSIL列表中,我观察到以下内容:

System.Nullable`1<!0> etc ...
Run Code Online (Sandbox Code Playgroud)

要么

class !0 etc ...
Run Code Online (Sandbox Code Playgroud)

!0在这些情况下,这意味着什么?

.net c# cil

86
推荐指数
2
解决办法
4200
查看次数

多次使用Include()时,实体框架代码很慢

我一直在调试一些慢速代码,似乎罪魁祸首是下面发布的EF代码.在稍后阶段评估查询时需要4-5秒.我试图让它在1秒内运行.

我使用SQL Server Profiler对此进行了测试,似乎执行了一堆SQL脚本.它还确认SQL Server完成执行需要3-4秒.

我已经阅读了有关使用Include()的其他类似问题,并且在使用它时似乎确实存在性能损失.我试图将下面的代码分成几个不同的查询,但它并没有太大的区别.

知道我怎么能让下面更快地执行?

目前我正在处理的网络应用程序只是在等待以下内容完成时显示一个空的iframe.如果我无法获得更快的执行时间,我必须将其拆分并部分加载iframe数据或使用其他异步解决方案.这里的任何想法也将不胜感激!

using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted }))
        {
            formInstance = context.FormInstanceSet
                                .Includes(x => x.Include(fi => fi.FormDefinition).Include(fd => fd.FormSectionDefinitions).Include(fs => fs.FormStateDefinitionEditableSections))
                                .Includes(x => x.Include(fi => fi.FormDefinition).Include(fd => fd.FormStateDefinitions))
                                .Includes(x => x.Include(fi => fi.FormSectionInstances).Include(fs => fs.FormFieldInstances).Include(ff => ff.FormFieldDefinition).Include(ffd => ffd.FormFieldMetaDataDefinition).Include(ffmdd => ffmdd.ComplexTypePropertyNames))
                                .Include(x => x.CurrentFormStateInstance)      
                                .Include(x => x.Files)
                                .FirstOrDefault(x => x.FormInstanceIdentifier == formInstanceIdentifier);

            scope.Complete();
        }
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server iframe entity-framework

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

如何从C使用MPI_Scatter和MPI_Gather?

到目前为止,我的应用程序正在读取带有整数列表的txt文件.这些整数需要由主进程存储在数组中,即排名为0的处理器.这样可以正常工作.

现在,当我运行程序时,我有一个if语句检查它是否是主进程,如果是,我正在执行MPI_Scatter命令.

根据我的理解,这将使用数字细分数组并将其传递给从属进程,即所有rank> 0.但是,我不知道如何处理MPI_Scatter.从属进程如何"订阅"以获取子数组?如何告诉非主进程对子数组执行某些操作?

有人可以提供一个简单的例子来向我展示主进程如何从数组中发出元素,然后让奴隶添加总和并将其返回给主数据库,将所有总和加在一起并将其打印出来?

我的代码到目前为止:

#include <stdio.h>
#include <mpi.h>

//A pointer to the file to read in.
FILE *fr;

int main(int argc, char *argv[]) {

int rank,size,n,number_read;
char line[80];
int numbers[30];
int buffer[30];

MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);

fr = fopen ("int_data.txt","rt"); //We open the file to be read.

if(rank ==0){
printf("my rank = %d\n",rank);

//Reads in the flat file of integers  and stores it in the array 'numbers' of type int.
n=0;
while(fgets(line,80,fr) …
Run Code Online (Sandbox Code Playgroud)

c parallel-processing distributed-computing mpi

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

试图将行压平成列

我在表中有一组具有id的行.我试图在多列的行中展平它.我几乎可以肯定我用cte和也许分区完成了这个.

我用cte来删除重复的数据,我以为我做了类似于我想要完成的事情.我能够提出可行的解决方案(如下所列),但仍然觉得应该有更优雅的解决方案.

CREATE TABLE #MyTable ( RowID int , field VARCHAR(10), value  VARCHAR(10))  

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 1, 'first', 'neil' )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 2, 'first', 'bob'  )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 3, 'first', 'tom'  )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 1, 'last', 'young' )

INSERT INTO #MyTable ( RowID, field, value ) VALUES  ( 2, …
Run Code Online (Sandbox Code Playgroud)

sql common-table-expression

19
推荐指数
1
解决办法
4万
查看次数

在Javascript中匹配10个数字

我在SO上尝试了其他问题,但它们似乎没有为我的问题提供解决方案:

我有以下简化的验证功能

function Validate() {
    var pattern = new RegExp("([^\d])\d{10}([^\d])");

    if (pattern.test(document.getElementById('PersonIdentifier').value)) {
        return true;
    }
    else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经测试过,看看它是否正确检索了它.但它并不完全匹配10位数.我不想要或多或少.接受10位数,否则返回false.

我无法让它发挥作用.试图以多种方式调整模式,但无法正确.也许问题出在其他地方?

我在C#中取得了以下成功:

Regex pattern = new Regex(@"(?<!\d)\d{10}(?!\d)")
Run Code Online (Sandbox Code Playgroud)

什么是可接受的例子:

0123456789,1478589654,1425366989

不能接受的:

a123456789,123456789a,a12345678a

javascript regex

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

数据库中缺少外键是否会影响EF生成的sql?

我正在研究数据库优先的ASP.NET MVC应用程序.查看数据库时,外键非常不一致,基本上它们仅在创建表的SQL脚本中指定时才存在.在大多数情况下,他们不在那里.

但是,查看edmx模型,我可以看到它知道外键,即它已正确识别导航属性.

我的问题是,实际数据库中缺少的外键是否对Entity Framework生成的sql有影响?实际上,我指的是对绩效的负面影响.

我无法弄清楚它是否重要.

只是为了澄清,在数据库中我正在扩展表并寻找指示外键的红色键.我也在查看子文件夹:"Keys".

database sql-server entity-framework foreign-keys

13
推荐指数
1
解决办法
729
查看次数

解决 NuGet 版本冲突

我正在尝试通过 NuGet 安装更新:

Microsoft.AspNetCore.Mvc 1.1.2 --> 2.0.4
Run Code Online (Sandbox Code Playgroud)

但是,更新永远不会成功,因为在遇到以下冲突后会回滚:

Version conflict detected for Microsoft.CodeAnalysis.CSharp. Reference the package directly from the project to resolve this issue.


Web -> Microsoft.AspNetCore.Mvc 2.0.4 -> Microsoft.AspNetCore.Mvc.RazorPages 2.0.4 -> 
Microsoft.AspNetCore.Mvc.Razor 2.0.4 -> Microsoft.CodeAnalysis.CSharp (>= 2.3.1) 

Web -> Microsoft.VisualStudio.Web.CodeGeneration.Design 1.1.0 -> 
Microsoft.VisualStudio.Web.CodeGeneration.Utils 1.1.0 ->
 Microsoft.CodeAnalysis.CSharp.Workspaces 1.3.0 -> 
Microsoft.CodeAnalysis.CSharp (= 1.3.0).
Run Code Online (Sandbox Code Playgroud)

因此,据我了解,Microsoft.CodeAnalysis.CSharp罪魁祸首是因为Microsoft.AspNetCore.Mvc具有至少要求它的依赖项v2.3.1,同时Microsoft.VisualStudio.Web.CodeGeneration.Design也具有要求它的依赖项v1.3.0

我不知道如何解决这个问题。它确实说了Reference the package directly from the project to resolve this issue,但我不太明白这意味着什么以及如何做到这一点。

c# dependencies nuget roslyn-code-analysis

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

为什么javac不会接受`x = x +++++ y`?

从编译器理论的角度来看,为什么javac编译器不接受表单声明x = x+++++y但接受x = x+++ ++y

java compiler-construction javac

8
推荐指数
1
解决办法
224
查看次数

ASP.NET Core(HttpSys)路由在本地工作,但在部署时无法工作

由于某些原因,当我在HttpSysWindows服务器上(通过服务结构)运行ASP.NET Core API时,路由无法正常工作,而本地一切正常。问题是中间件工作正常,所以我知道请求正在处理中,但是它永远无法命中任何控制器,它默认为我的app.run("Some 404 response")404中间件。我的一些代码:

启动文件

public void ConfigureServices(IServiceCollection services)
{
    #region IOC
    //ommitted
    #endregion 

    services.AddAutoMapper(typeof(SomeModel));

    services.AddCors(c => 
    {
        c.AddPolicy("AllowOrigin", options => options.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
    });

    services.AddDbContext<SomeContext>(options => options.UseSqlServer(_configuration.GetConnectionString("Dev")));

    services.AddMvc().AddFluentValidation();
}        

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        IdentityModelEventSource.ShowPII = true;
    }

    //Eliminating that auth is the problem
    //app.UseAuthentication(); 

    if (env.IsProduction())
    {
        app.UseHsts();
        app.UseHttpsRedirection();
    }

    app.UseCors("AllowOrigin");
    app.UseMvcWithDefaultRoute(); //tried this instead of below. No luck

    //app.UseMvc();

    app.Use((context, next) =>
    {
        if (context.Request.Path.Value == "" || …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-routing asp.net-core

8
推荐指数
1
解决办法
301
查看次数

Visual Studio 2012 - 未加载Razor视图文件(".cshtml")中的断点

在剃刀视图(".cshtml")中设置断点时,启动调试器时,通常为红色的圆圈会变为红色空心圆.将鼠标悬停在空心圆上时,会显示以下内容:

断点当前不会被击中.没有为此文档加载任何符号

它只是剃刀视图文件,普通的".cs"文件没有问题.

还有很多其他问题已经提出了与上述相同的"错误"消息的解决方案,但没有一个实际起作用.我尝试过的:

  • 清洁解决方案
  • 确保在属性 - > Web窗口中,在"调试器"部分下检查ASP.NET
  • 确保在属性 - >构建窗口中,检查定义DEBUG和TRACE,并在同一窗口的输出部分中,单击高级按钮,调试信息设置为"完整"
  • 重建一百万次.
  • 使用具有管理员权限的VS(无论如何我都这样做)
  • 重启系统
  • 在IIS中重新启动站点
  • 确保将Active Solution Configuration设置为Debug
  • 检查在web.config文件中,编译debug ="true"

编辑:我指的是剃刀代码,当然不是HTML甚至是javascript.例如,在剃须刀的foreach循环中设置断点

Edit2:如果我在控制器中设置了一个断点,我可以单步执行剃刀代码,因为调试器将在"完成"之前通过视图.我仍然无法在剃刀视图文件中实际设置断点.空心圆圈仍在显示,不会被击中.

Edit3:杀死指向w3wp.exe临时解决问题的"IIS工作进程".我能够再次调试剃刀视图.几个小时后,再次出现同样的问题.

c# debugging asp.net-mvc razor visual-studio-2012

6
推荐指数
1
解决办法
1万
查看次数