Tag: linq

LINQ to Entities字符串到十进制列

我已经研究过这个问题了。 每个人和他们的兄弟都想知道如何将int或decimal转换为字符串,但我找不到任何与EF相反的例子。 我的数据源在数据库中有一个订单total_amt列,类型为varchar。 原因是源数据已加密。 解密器就是这样做的。 我可以重写它来解密到临时表,然后将这些结果插入到正确类型的表中,但是当我们扩展应用程序时,现在和数据库更新期间需要分配更多工作。 我很想能够投射列,但我无法弄清楚如何使用Linq和EF。 public ActionResult Orders_Read([DataSourceRequest]DataSourceRequest request) { var db = new Ecommerce_DecryptedEntities(); var orders = from s in db.Orders where s.Order_Complete == true select new { s.Order_Id, s.MySEL_Name, s.MySEL_EMail, s.MySEL_Bus_Name, s.Total_Amt, s.Order_Complete_DateTime }; DataSourceResult result = orders.ToDataSourceResult(request); return Json(result, JsonRequestBehavior.AllowGet); } 注意:结果需要是iQueryable。 我真的不想ToList这个,因为它会从数据库中提取所有数据。 这被绑定到一个Telerik KendoUI Grid,它正在传递分页,排序和其他参数(注意它正在使用传入的请求转换为KendoUI的ToDataSourceResult,该请求包含上述分页,排序等数据。

初始化引用类型对象数组的简明方法

我想知道是否有更好的方法来初始化一个引用类型对象数组,就像这样。 Queue[] queues = new Queue[10]; for (int i = 0; i < queues.Length; i++) queues[i] = new Queue(); 我尝试了Enumerable.Repeat,但是数组中的所有元素都引用了同一个实例, Queue[] queues = Enumerable.Repeat(new Queue(), 10).ToArray(); 我也试过Array.ForEach,但没有ref关键字它不起作用: Queue[] queues = Array.ForEach(queues, queue => queue = new Queue()); 还有其他想法吗?

Linq to Sql – DateTime格式 – YYYY-MMM(2009年3月)

我想写一个Linq to Sql查询,它通过Username和DateTime进行计数和分组。 我希望DateTime的格式如下“YYYY-MMM”(即2009年3月)。 我认为这可行,但Linq to Sql无法解析ToString“format”参数。 dc.MyTable .GroupBy(r => new { Name = r.UserName, YearMonth = r.SomeDateTime.ToString(“yyyy-MMM”) }) .Select(r => new { Name = r.UserName, YearMonth = r.YearMonth, Count = r.Count() }) .OrderBy(r => r.YearMonth) .ThenBy(r => r.Name); 有没有人有任何想法/建议? 谢谢。

entity framework通配符和Linq

是否可以构造包含通配符的有效Linq查询? 我已经看到了这个问题的各种答案,建议使用: .Where(entity => entity.Name.Contains(“FooBar”)) .Where(entity => entity.Name.EndsWith(“Bar”)) .Where(entity => entity.Name.StartsWith(“Foo”)) 或构建RawSql: var commandText = @”SELECT field FROM table WHERE field LIKE @search”; var query = new ObjectQuery(commandText, context); query.Parameters.Add(new ObjectParameter(“search”, wildcardSearch)); 如果通配符不在字符串的开头或结尾,则第一个解决方案将不起作用,例如, searchTerm = “Foo%Bar” 。 第二个解决方案,使用RawSql,并不适合我,感觉就像一个廉价的出路。 但它确实有效。 我还没有尝试的第三个选项是创建一些可以解析搜索词并构造有效的Linq查询的东西,这是@Slauma在下面的链接2中进行的操作。 但是,如果通配符不在搜索词的开头或结尾,这仍然不起作用。 所以问题是:是否可以构造一个包含通配符的有效Linq查询? 编辑:值得一提的是,在这个实例中我使用的是Oracle数据访问组件(ODAC / ODP),但我认为在这种情况下它没有太大区别。 链接: 1. entity framework中的“喜欢”查询 2. 以搜索词为条件的精确和通配符搜索 3. 使用RawSql

InvalidOperationException:类型’System.Linq.Queryable’上没有方法’Where’与提供的参数兼容

(以下代码已更新并正常运行) LinqPad提供动态的OrderBy示例。 我想要做的只是简单地为此示例应用’Where’而不是’OrderBy’。 这是我的代码: IQueryable query = from p in Purchases //where p.Price > 100 select p; string propToWhere = “Price”; ParameterExpression purchaseParam = Expression.Parameter (typeof (Purchase), “p”); MemberExpression member = Expression.PropertyOrField (purchaseParam, propToWhere); Expression<Func> lambda = p => p.Price < 100; lambda.ToString().Dump ("lambda.ToString"); //Type[] exprArgTypes = { query.ElementType, lambda.Body.Type }; Type[] exprArgTypes = { […]

Linq:SqlFunctions.PatIndex vs string.Contains for string comparisson

相同查询的以下哪个版本的性能会更好: 版本1(string.Contains): var query = db.Products .Where( p => p.Description.Contains( description ) ); 版本2(SqlFunctions.PatIndex): var query = db.Products .Where( p => SqlFunctions.PatIndex(“%” + description + “%”,p.Description) > 0 );

使用LINQ从XML获取max属性值

我有以下XML文件。 我想使用LINQ获得Max(“NR”) 。 任何人都可以帮我这样做吗? 我知道如何为节点做这个,但属性让我感到困惑……:S

使用LINQ排序字符串数组

我有一个字符串数组声明如下 string[][] data = new string[3][]; string[] name = new string[10]; string[] contact = new string[10]; string[] address = new string[10]; 在我将数据填充到名称,地址和联系人之后,地址在某些数据中可以是空字符串。 之后我将其分配给字符串数组数据。 data[0] = name; data[1] = contact; data[2] = address 我如何使用LINQ按名称对字符串数组进行排序。 我尝试data = data.orderby(y => y [0])。ToArray(); 但是这种方式会改变字符串数组的顺序。 假设data [0]是商店名称,但在排序后它变成商店地址。 任何人都知道如何对记录进行排序? 请帮忙

Linq – 在一个查询中计算多个平均值

我正在尝试将一些SQL查询转换为Linq,以避免多次访问数据库。 我正在尝试转换的旧SQL: SELECT AVG(CAST(DATEDIFF(ms, A.CreatedDate, B.CompletedDate) AS decimal(15,4))), AVG(CAST(DATEDIFF(ms, B.CreatedDate, B.CompletedDate) AS decimal(15,4))) FROM dbo.A INNER JOIN dbo.B ON B.ParentId = A.Id 所以我创建了两个C#类: class B { public Guid Id { get; set; } public DateTime CreatedDate { get; set; } public DateTime CompletedDate { get; set; } } class A { public Guid Id { […]

导出到csv – Linq查询

我在linq中有一个查询db表的类,问题是:如何将该数据导出到csv? 我尝试过建议的链接,我正在使用linq2csv,仍然想知道如何通过他们的订单获取列? 谢谢! var usr = from usr in db.User select new { usr.UserName, usr.Dept, usr.Name) MainListView.DataSource = usr; MainListView.DataBind(); CsvFileDescription outputFileDescription = new CsvFileDescription { SeparatorChar = ‘,’, FirstLineHasColumnNames = true, FileCultureName = “en-US” }; CsvContext cc = new CsvContext(); string finalPath = mypath + “usr_” + DateTime.Now.ToString ( “yyyyMMddhhmmssfff” ) + “.csv”; cc.Write( […]