小编Tys*_*Tys的帖子

LINQ表达式.从范围引用的变量"p"类型,但未定义

我正在使用此代码动态构建LINQ查询.它似乎工作,但当我在我的搜索中有多个searchString时,(所以当添加多个表达式时,我得到以下错误:

从范围引用的变量'p',但未定义**

我想我只能定义/使用一次.但是,如果是这样,我需要稍微改变我的代码.任何人都能指出我在正确的方向吗?

    if (searchStrings != null)
    {
        foreach (string searchString in searchStrings)
        {
            Expression<Func<Product, bool>> containsExpression = p => p.Name.Contains(searchString);
            filterExpressions.Add(containsExpression);
        }
    }

    Func<Expression, Expression, BinaryExpression>[] operators = new Func<Expression, Expression, BinaryExpression>[] { Expression.AndAlso };
    Expression<Func<Product, bool>> filters = this.CombinePredicates<Product>(filterExpressions, operators);

    IQueryable<Product> query = cachedProductList.AsQueryable().Where(filters);

    query.Take(itemLimit).ToList();  << **error when the query executes**


    public Expression<Func<T, bool>> CombinePredicates<T>(IList<Expression<Func<T, bool>>> predicateExpressions, Func<Expression, Expression, BinaryExpression> logicalFunction)
    {
        Expression<Func<T, bool>> filter = null;

        if (predicateExpressions.Count > 0)
        {
            Expression<Func<T, bool>> firstPredicate = predicateExpressions[0];
            Expression …
Run Code Online (Sandbox Code Playgroud)

c# linq expression-trees

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

看看sp_execute正在做什么

在我的MS SQL Profiler中,我看到了很多这些小问题.

exec sp_execute 1,@ p0 = 15954

我知道这在理论上是有效的,这是执行先前创建的查询并传入特定参数.但问题是我不确定导致这些查询的原因.

有没有办法查看这些查询的TSQL内容?

.net sql t-sql sql-server-2008

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

将过滤器表达式动态添加到数组中

我有这个例子,它创建了3个表达式并将它们添加到一个表达式数组中.现在我想知道如何在循环中对未知数量的表达式执行相同的操作.

Expression<Func<Product, bool>> filter1 = c => c.City.StartsWith("S");
Expression<Func<Product, bool>> filter2 = c => c.City.StartsWith("M");
Expression<Func<Product, bool>> filter3 = c => c.ContactTitle == "Owner";

Expression<Func<Product, bool>>[] filterExpressions = new Expression<Func<Product, bool>>[] { filter1, filter2, filter3 };
Run Code Online (Sandbox Code Playgroud)

c# linq

10
推荐指数
1
解决办法
2223
查看次数

我的香蕉在哪里?(SQL Query NULL问题)

我有这张桌子:

CREATE TABLE [dbo].[Fruit](
    [RecId] [int] IDENTITY(1,1) NOT NULL,
    [Banana] [int] NULL,
    [TextValue] [varchar](50) NULL
)
Run Code Online (Sandbox Code Playgroud)

以下代码:

DECLARE @FruitInput INT = NULL
SELECT * FROM Fruit WHERE Banana = @FruitInput 
Run Code Online (Sandbox Code Playgroud)

该记录在该表中:

1|NULL|Hello 
Run Code Online (Sandbox Code Playgroud)

为什么我的查询不会返回此记录?

sql sql-server null

10
推荐指数
1
解决办法
400
查看次数

asp.net CompositeDataBoundControl用于单个对象

我创建了一个CompositeDataBoundControl,我可以很好地数据绑定.现在我想做同样的事情,但不是针对对象列表,而是针对单个对象.原因是我希望我的同事能够在他们的前端代码中简单地使用<%#Eval("X")%>.

问题是CompositeDataBoundControl有一个我必须覆盖的方法,它只接受一个集合作为数据源

CreateChildControls(System.Collections.IEnumerable dataSource, bool dataBinding)
Run Code Online (Sandbox Code Playgroud)

有没有办法为单个对象做同样的事情?

c# asp.net

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

列表查询比IQueryable快20倍?

这是我今晚安排的测试.这是为了证明一些不同的东西,但结果并不像我预期的那样.

我在IQueryable上运行10000次随机查询的测试,在测试时我发现如果我在List上做同样的事情,我的测试速度提高了20倍.

见下文.我的CarBrandManager.GetList最初返回一个IQueryable,但现在我首先发出一个ToList(),然后它的速度更快.

谁能告诉我为什么我看到这个巨大的差异?

var sw = new Stopwatch();
sw.Start();

int queries = 10000;

//IQueryable<Model.CarBrand> carBrands = CarBrandManager.GetList(context);
List<Model.CarBrand> carBrands = CarBrandManager.GetList(context).ToList();

Random random = new Random();
int randomChar = 65;

for (int i = 0; i < queries; i++)
{
    randomChar = random.Next(65, 90);
    Model.CarBrand carBrand = carBrands.Where(x => x.Name.StartsWith(((char)randomChar).ToString())).FirstOrDefault();
}

sw.Stop();
lblStopWatch.Text = String.Format("Queries: {0} Elapsed ticks: {1}", queries, sw.ElapsedTicks);
Run Code Online (Sandbox Code Playgroud)

c# linq performance list iqueryable

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

没有代码的 ASP.NET 页面使用其他库/DLL

我正在向现有页面添加一个简单的 ASP.NET 页面(我现在无法更改/构建原始项目),该页面没有隐藏文件的代码。一切正常,除非我想使用我的项目中另一个库中的某个函数。

例子

<%@ Page Language="C#"  %>
<%@ Import Namespace="MyProject.BusinessLogic" %>
<HTML>
   <script runat="server" language="C#">
   public void Page_Load(object sender, EventArgs e)
   {
      bool myBool = false;
      MyLabel.Text = myBool.ToString();  //works fine
      MyLabel.Text = MyProject.BusinessLogic.StatusManager.Get().ToString(); //does not work
   }
   </script>
   <body>
      <form id="MyForm" runat="server">
         <asp:label id="MyLabel" runat="server"></asp:label>
      </form>
   </body>
</HTML>
Run Code Online (Sandbox Code Playgroud)

我得到的错误是 .. 在命名空间“MyProject.BusinessLogic”中不存在(您是否缺少程序集引用?)

知道如何解决这个参考问题吗?

我尝试了这些选项:http://msdn.microsoft.com/en-us/library/d864zc1k(v=vs.85).aspx,但没有运气。

.net c# asp.net dll

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

C#相当于jQuery.parents(Type)

在jQuery中有一个叫.家长("XX")很酷的功能,使我开始的地方与对象在DOM树和DOM向上搜索,寻找特定类型的父对象.

现在我在C#代码中寻找相同的东西.我有一个asp.net panel有时坐在另一个父母小组,或有时甚至2或3个父母小组,我需要通过这些父母向上旅行,最终找到UserControl我正在寻找的.

在C#/ asp.net中有一个简单的方法吗?

c# asp.net

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

将图像从剪贴板粘贴到Web表单

我看到之前已经讨论了几次,但那是2010年和之前的情况.现在我在我的Gmail客户端写了一封新邮件,并注意到我可以将图像粘贴到邮件正文/ webform中.

我很高兴看到这一点,因为我一直在寻找类似的解决方案.

谁能提供一些有关其工作原理的细节?是Flash吗?还是一些JavaScript?

asp.net flash clipboard jquery

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

SQL模糊搜索和类似Google的改进

有趣的挑战; 我的客户在SQL数据库中输入一些产品信息.该产品是一位着名的古老俄罗斯作曲家拉赫玛尼诺夫的画作.所以该名称在描述字段中.现在,只有少数搜索产品的客户知道如何拼写这个名字,但大部分时间都拼写错误.除了拼写错误之外,还有很多国际客户只是写出这个名字,如Rachmaninow,Rahmaninov,Рахманінаў.

如果我将这些拼写错误或翻译中的任何一个放入谷歌(几乎)总是知道如何纠正它并将我直接重定向到正确的页面.

有谁知道我的可能性是什么在我的产品搜索中获得一些神奇的东西?我可以使用一些API吗?一些我不知道的超级自由文本选项?要么 ...

sql t-sql freetext

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