【问题标题】:SQL query with LINQ使用 LINQ 的 SQL 查询
【发布时间】:2012-01-29 02:14:26
【问题描述】:

请帮助 LINQ 形式的 SQL 查询 - C# .NET 3.5

select distinct location, country from Customer where   Customer_Code ='1001';

这是查询没有问题。在 SQL 中运行良好。但是当我在 LINQ 格式的 ASP.NET 代码中使用下面的 LinQ 查询时出现错误。请帮忙。

编辑

在 ASP.NET 代码中,

    var Query2 =  ds.Tables[0].AsEnumerable()
                 .Where(p => p.Field<string>("Customer_Code") == "1001")
                 .Select(p => new {p.Field<string>("Location"),p.Field<string>("Country")});

错误:

错误:无效的匿名类型成员声明符。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。

请帮忙!!!

【问题讨论】:

  • 举个例子,说明一些数据,你期望的结果是什么?
  • 在 LINQ 格式中,如何获得不同值的多个值的结果
  • 你能放一些数据作为样本吗?
  • 提供了我在 VisualStudio IDE 中尝试过的代码。请检查!

标签: c# asp.net linq .net-3.5


【解决方案1】:

类似:

var query = dbContext.Customer
                     .Where(customer => customer.Customer_Code == "1001")
                     .Select(customer => new { customer.Location, customer.Country })
                     .Distinct();

这里的关键是使用匿名类型作为保存客户位置和国家/地区的元组。


编辑:编辑后,看起来您使用的是数据表,而不是 LINQ to SQL / Entities。 在这种情况下,你可能想要这样的东西:

var query = table.AsEnumerable()
                 .Where(p => p.Field<string>("Customer_Code") == "1001")
                 .Select(p => new 
                               {
                                  Location = p.Field<string>("Location"),
                                  Country = p.Field<string>("Country")
                               })
                 .Distinct();

【讨论】:

  • 错误:无效的匿名类型成员声明器。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。
  • @sukumar:请检查Customer 类型并检查代表LocationCountry 的属性的名称。也许它们是小写的?
  • 我检查了....这里我提供的数据类型非常好。我在构建本身时遇到编译时错误,即使在运行时或执行时也没有
  • 使用结果查询,我想与另一个数据表行进行一些比较。我如何执行此操作??
  • foreach(var a in query)Console.WriteLine(a.Location + " " + a.Country);
猜你喜欢
  • 1970-01-01
  • 2018-07-23
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
相关资源
最近更新 更多