相关疑难解决方法(0)

多列不区分大小写的组

反正有没有做LINQ2SQL查询做类似的事情:

var result = source.GroupBy(a => new { a.Column1, a.Column2 });
Run Code Online (Sandbox Code Playgroud)

要么

var result = from s in source
             group s by new { s.Column1, s.Column2 } into c
             select new { Column1 = c.Key.Column1, Column2 = c.Key.Column2 };
Run Code Online (Sandbox Code Playgroud)

但忽略了分组列内容的情况?

c# linq linq-to-sql

12
推荐指数
2
解决办法
9832
查看次数

LINQ查询语法中的SQL ROW_NUMBER()

我有这个查询,我希望用Linq替换为查询语法:

select 
    ii.Id, ii.Name as Supplier,
    qi.Price1, qi.Price2, qi.Price3,
    case when qi.price1 is null then NULL else ROW_NUMBER() OVER(ORDER BY isNull(qi.price1,1000000) ASC) end AS Price1Order,    
    case when qi.price2 is null then NULL else ROW_NUMBER() OVER(ORDER BY isNull(qi.price2,1000000) ASC) end AS Price2Order,    
    case when qi.price3 is null then NULL else ROW_NUMBER() OVER(ORDER BY isNull(qi.price3,1000000) ASC) end AS Price3Order
From dbo.InquiryItems ii
left join dbo.quoteItems qi on ii.Id = qi.QuoteItem_InquiryItem
Run Code Online (Sandbox Code Playgroud)

SQL查询结果:

Id      Supplier        Price1  Price2  Price3  Price1Order Price2Order Price3Order
1655    Supplier 2 …
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server

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

在Linq的Row_number(由yyy分区)?

我对LINQ很新,我最初使用它的一个尝试必须超级复杂!

我试图在这个Stack Over问题中调整已接受的答案.

我这样写了:

using (var ctx = new MyEntities())
        {
            var q = ctx.tblPrices.OrderByDescending(x => x.Cost)
                .GroupBy(x => x.ItemID)
                .Select(g => new {g, count = g.Count()})
                .SelectMany(t => t.g.Select(b => b).Zip(Enumerable.Range(1, t.count), (j, i) => new {j.WebPrice, j.PriceID, j.ItemID}));

            foreach (var i in q)
            {
                sb.AppendFormat("Id = {0}, Name = {1}, ItemId = {2}<hr/>", i.WebPrice, i.PriceID, i.ItemID);
            }

        }
Run Code Online (Sandbox Code Playgroud)

基本上,我想从不同供应商那里退回相同商品的最便宜价格.

但是,当我运行项目时,我得到以下很长的错误消息,我不知道它意味着什么.但它看起来很严重!

LINQ to Entities无法识别方法'System.Collections.Generic.IEnumerable 1[<>f__AnonymousType53 [System.Nullable 1[System.Decimal], System.Int32,System.Int32]] Zip[tblPrice,Int32,<>f__AnonymousType53](System.Collections.Generic.IEnumerable 1[MyProjectMVC.Models.tblPrice], System.Collections.Generic.IEnumerable1 [System.Int32],System.Func 3[MyProjectMVC.Models.tblPrice,System.Int32, <>f__AnonymousType5 …

c# linq asp.net-mvc

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

将任何字符串格式化为字符串"yyyy/MM/dd"

我有许多字符串,如"20120117"和"20120321".我需要使用以下格式的新字符串转换它:"2012/01/17"和"2012/03/21".那么,有一种方法可以做到这一点?

我尝试:

string dateString = string.format("{0:d", "20120321");
Run Code Online (Sandbox Code Playgroud)

string dateString = string.format("{0:yyyy/MM/dd", "20120321"); 
Run Code Online (Sandbox Code Playgroud)

string dateString = int.Parse("20120321").ToString("yyyy/MM/dd");
Run Code Online (Sandbox Code Playgroud)

在所有情况下,我都达不到目标.= /

所以,我可以这样做吗?

OBS:有一种方法可以做到这一点,而无需解析到日期时间?

c# string formatting

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

标签 统计

c# ×4

linq ×3

asp.net-mvc ×1

formatting ×1

linq-to-sql ×1

sql-server ×1

string ×1