小编Mic*_*elD的帖子

我怎么知道lambda表达式何时为空

我需要以编程方式检查lambda表达式中的嵌套属性/函数结果是否为null.问题是null可以在任何嵌套的子属性中.

例.功能是:

 public static bool HasNull<T, Y>(this T someType, Expression<Func<T, Y>> input)
    {
      //Determine if expression has a null property
    }  
Run Code Online (Sandbox Code Playgroud)

使用:

person.HasNull(d=>d.addressdetails.Street)
person.HasNull(d=>d.addressdetails[1].Street)
person.HasNull(d=>d.addressdetails.FirstOrDefault().Street)
person.HasNull(d=>d.InvoiceList.FirstOrDefault().Product.Name)
Run Code Online (Sandbox Code Playgroud)

在任何示例中,addressdetails或street,或者invoicelist或者产品或名称可以为null.如果我尝试调用该函数并且某些嵌套属性为null,则代码将抛出异常.

重要提示:我不想为此使用try catch,因为这对于调试性能来说是灾难性的.

这种方法的原因是快速检查值,而我不想忘记任何空值,因此导致异常.这对于报告解决方案和网格非常方便,其中报表上的null可以显示为空并且没有进一步的业务规则.

相关帖子:当它被抛出并被捕获时,不要停止调试器

c# null lambda exception

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

ASP.NET MVC通过MVC框架加载慢图像?

在一些写真集页面上,我想显示appr 20缩略图.这些缩略图以编程方式从数据库加载.那些缩略图已经调整大小.当我向他们展示图像加载有点慢.有些需要0.5秒才能加载一些等待2个secons.数据库并不重要,因为当我删除数据库层时,性能问题仍然存在.当我直接用html加载相同的图像时,图像会立即加载.

通过mvc框架加​​载图像/文件是慢还是我错过了什么?

这太慢了

//in html
<img src='/File/Image.jpg' border='0'>                    

//in controller
public FileResult File(string ID)
{           
    //database connection removed, just show a pic
    byte[] imageFile = System.IO.File.ReadAllBytes(ID);
    return new FileContentResult(imageFile,"image/pjpeg");
}
Run Code Online (Sandbox Code Playgroud)

这很快就会发生

<img src='/Content/Images/Image.jpg' border='0'>                    
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller performance load file

5
推荐指数
2
解决办法
3468
查看次数

不要等待ASP.NET MVC的长时间运行

当用户执行某些操作(生成多个报告)时,我们会执行一些长时间运行操作.我们不希望用户等到生成这些报告.有没有一个快速的方法来实现这一点,而无需实现jobcheduler?也许使用这样的线程?或者这不安全吗?

    public ActionResult About()
    {
        Thread thread = new Thread(new ThreadStart(MuchWork));
        thread.Start();
        return View();
    }

    public void MuchWork()
    {
        Thread.Sleep(10000);

        Thread.Sleep(4000);
    }
Run Code Online (Sandbox Code Playgroud)

c# multithreading visual-studio-2010 asp.net-mvc-2

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

如何设置多个批次中可用的会话变量?

我有一个大型数据库脚本将同一结构的多个数据库迁移到一个目标数据库.此目标数据库更通用,因此可以存储来自不同源数据库的数据.我使用变量来跟踪当前正在迁移的实体,因此我知道要在目标表中插入什么ID.

此时迁移性能非常糟糕.为了能够更好地分析脚本,我想通过在每次表迁移后放置'go'来拆分脚本,但这会破坏变量.有没有办法声明一个可供整个连接/会话访问的变量?就像temp #table一样?

sql t-sql sql-server

5
推荐指数
2
解决办法
5242
查看次数

Visual Studio团队资源管理器在build en reports文件夹中显示红叉

任何想法可能是什么问题?

一些事实:

- 直接报告链接有效(我可以浏览http://theserver/Reports/Pages/Folder.aspx?ItemPath =/someSite)

- 我有足够的权利

- 它已经工作,突然它停止工作

- 我可以开源控制

- 我通过本地局域网与tfs服务器直接连接

- 我的同事没有这样的问题

TFSproblem http://img178.imageshack.us/img178/5871/tfsproble.jpg

explorer tfs2008 visual-studio-2008

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

Render partial in an extension method fails

I'm creating a tabcontainer that shows information from partials. The code that i've created is as follows:

//Entering extension method, m_helper is of type HtmlHelper
foreach (var tab in m_tabList)
{
    sb.AppendLine("<div class='tabContent'>"); 
    m_helper.RenderPartial(tab.PartialName);
    sb.AppendLine("</div>");    
}
//Returning sb.ToString to the caller method
Run Code Online (Sandbox Code Playgroud)

This will not work because the renderpartial writes directly to the output stream. I cannot render the partial to a string either. to add it to the stringbuilder object.

Any suggestions?

.net c# asp.net-mvc asp.net-mvc-2

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

Jquery自动完成,如何搜索单词而不是字符串

我有一个文本框,我希望有一个自动完成功能,让用户搜索地址.用户必须能够键入不同的单词,并且自动完成必须搜索它们以缩小其列表.

我一直在尝试阅读文档,但似乎没有什么可以做的,因为它总是搜索整个字符串而不是单词.我错过了什么吗?

例:

当用户输入"Mathias Antwerp"时,他必须看到包含这些词的所有地址.在示例中,它必须显示1行,这是第二行.

<script>
var addresses = [
    { name: "Frederick Dereave Gentstreet 4 Gent" },
    { name: "Mathias Derian Meilaan 9 Antwerp" },
    { name: "Mathias Hors frelaan 5 Kortrijk" }
];    

$(document).ready(SetAutoComplete);

function SetAutoComplete() {

    $("#testveld").autocomplete(emails,
        {
            matchContains: "word"
        }
    );
}
</script>
<input type="text" id="testveld" style='width:300px'/>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery jquery-ui autocomplete

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

如何在存储过程中重用结果以提供给同一存储过程中的第二个选择

我正在编写一个存储过程来获取整个屏幕的数据.如何重新使用一个选择的结果进入第二个选择?这是出于性能原因

简化示例:我有4个表

  1. 主管
  2. 行动(有责任的外键)
  3. 集团(有责任的外键)
  4. 案例(有外键给组)

存储过程获取caseid以检索数据

首先选择获得的细节case,group及其相关responsible的记录:

select 
   Case.Date,
   Case.Name,
   Group.Name,
   Responsible.Name
   Responsible.ResponsibleID
from Case
inner join Group on Group.GroupID=Case.GroupID
inner join Responsible on Responsible.ResponsibleID=Group.ResponsibleID
where CaseID=@CaseID
Run Code Online (Sandbox Code Playgroud)

第二个选择必须获取负责人所分配的所有操作.我们只有caseID,因此我们必须重新构建连接:

select Action.*  
from Case
inner join Group on Group.GroupID=Case.GroupID
inner join Responsible on Responsible.ResponsibleID=Group.ResponsibleID
inner join Action  on Action.ResponsibleID=Responsible.ResponsibleID
where CaseID=@CaseID
Run Code Online (Sandbox Code Playgroud)

如果可以重用上一个结果中的变量,则可以创建以下查询,这可能对性能更好:

Select * from Action where ResponsibleID={ResultSet1}.ResponsibleID
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures

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