Tag: linq

该查询包含对在不同数据上下文中定义的项的引用

我在Stackoverflow中阅读了另外几篇文章但我的问题很简单且不同。 我有2个独立的数据库,这就是为什么我有两个单独的Datacontext。 这是我的查询,我传递参数并将其绑定到我的GridView: if (Session[“EntitySelected”] == null) { MessageBox.Show(“Please Select an Entity first!”); Response.Redirect(“~/FrontEnd/List.aspx”); } int getEntity = Int16.Parse(Session[“EntitySelected”].ToString()); this.Label3.Text = “You Selected Entity: ” + (string)Session[“EntitySelected”]; dbWebEnrollDataContext dt1 = new dbWebEnrollDataContext(); CommissionsV2DataContext cv1 = new CommissionsV2DataContext(); var td = from s in cv1.Entity_Product_Points join r in dt1.PlanMasters on s.Product_ID equals r.Product_ID where s.Entity_ID == […]

在LINQ查询中动态设置表名

我正在研究数据仓库应用程序,我们有4个表,其中模式是相同的。 这些表之间的区别仅在于表名。 表格示例: ps_Contractor ps_Employee ps_Union ps_NonUnion 架构 ID 每小时 效益 总 现在我需要根据这些表生成4个报告。 我没有编写4个单独的LINQ查询,而是想编写单个查询,我可以动态地传递表名。 问题如何在以下LINQ查询中动态传递表名? var data = ( from q in _dbcontext.ps_Contractor join _l in _dbcontext.log on q.id equals l.tablelogid where q.hourly = 8 select new{ hourly=q.hourly, benefit=q.benefit, total=q.total, log = l.message }.ToList(); 我已经查看了堆栈溢出建议的所有类似问题。 我不想使用ExecuteStoreQuery。 我有什么选择?

Linq:如何将行转换为带有计数的列(交叉表数据)?

我想我需要一种使用C#和Linq执行数据透视表或交叉表的方法,列数不确定。 但是,我会添加一些开始细节以了解它的去向。 想象一下有两个字段的表: string EventName; Datetime WhenItHappend; 我们想生成一个报告,如下面的示例,我们按EventName进行分组,然后有一系列列来计算一些日期和时间帧数。 困难显然是可变数量的列。 Sport Jan 2010 Jan 2009 2009年 2月2010年 2月2009 篮球 26 18 23 16 曲棍球 28 19 25 18 游泳 52 45 48 43 客户可以为报告创建任意数量的命名事件计数器。 function始终相同:“名称”,“开始”,“结束”。 有没有什么方法可以将它组装成C#中的单个linq IQueryable结果? 就SQL而言,我尝试创建一个日期范围表{TimeFrameName,begin,end}并将其连接到上面的表,其中begin <= whenItHappened和whenItHappened <= end,这产生了一组很好的{EventName,TimeFrameName}然后做了一个count(*),但仍然留下了如何转换数据,使行成为列。

c#读取XML文件格式不正确

我必须读取一个没有根元素的XML文件来提取包含的数据。 XML有许多这样的元素: 12/09/2017 – 00:00 ParityRate update THROOMDISP set ID_HOTEL = ‘104’, ID_ROOM = ‘920’, NUM = ‘3’, MYDATA = ‘20171006’ where id_hotel =104 and id_room =’920′ and MYDATA =’20171006′ 104 updateTHROOMDISP(OK) 12/09/2017 – 00:00 ParityRate update THROOMDISP set ID_HOTEL = ‘105’, ID_ROOM = ‘923’, NUM = ‘1’, MYDATA = ‘20171006’ where id_hotel =105 and […]

使用WCF数据服务进行分页

我的问题是如何使用WCF数据服务处理分页。 我想要使​​用它的方式是执行查询(传递页面大小和当前页面),并获取该查询的结果以及页面信息,如总页数,当前页面编号和页面大小。 客户端(这是另一种将结果转换为使用JSON的移动应用程序的服务)来处理下一个/上一个按钮。 但是,在WCF数据服务上使用LINQ太有限了,它不支持我需要的LINQ表达式。 我尝试在WCF 数据服务中创建服务操作,但我只能返回IQueryable数据实体集合,因此我无法返回也包含分页信息的自定义实体。 有没有办法为WCF数据服务执行实现分页,以便在结果旁边我也可以获取分页信息? 编辑:由于WCF数据服务的限制,我切换到正常的WCF服务。 说实话,我不明白为什么有人会想要使用这些严重限制的数据服务!

针对IEnumerable 过滤IEnumerable

我有一个具有属性StockNumber的对象Style 。 我想根据用户在搜索中输入的IEnumerable stockNumbers过滤所有Db.Styles的列表。 DB.Styles是一个IEnumerable 。 这基本上是我想要做的: public IEnumerable LoadListOfStyles(IEnumerable stockNumbers) { return Db.Styles.Intersect(stockNumbers); // Need to filter Db.Styles based on stockNumbers } 那么有没有一种简单的方法可以将Db.Styles中所有样式的列表与Db.Styles中的搜索值进行stockNumbers以返回仅用户搜索过的Styles的筛选列表? 我看到能够做到这一点的唯一方法是让2个IEnumerable对象相交,但是从搜索的库存号中逐个加载样式似乎是很多不必要的代码。 我想知道是否有更简单的方法。 或者我是否需要使用自己的方法来过滤结果?

将linq连接的左侧或右侧填充为相同的行数

我的目标是创建一个与右侧或左侧相同行数的列表,而不管左列或右列是否比另一列短。 考虑这两个查询: var result1 = (from f in list2 join b in list1 on f.index equals b.index into bf from x in bf.DefaultIfEmpty() select new { box = (x == null ? String.Empty : xb), file = ff }); var result2 = (from b in list1 join f in list2 on b.index equals f.index into […]

LINQ,匿名类型和闭包问题

我有一段代码使用LINQ过滤列表,创建匿名类型的实例列表,并为每个实例分配一个事件处理程序: // Select every linear expression and create a menu item from it var items = from expr in expressionList.Expressions where expr.Type == ExpressionType.Linear let stdExpr = (StandardExpression)expr select new { Menu = new ToolStripMenuItem(stdExpr.Expression), // string stdExpr.Slot // int }; // Wire a Click event handler to each menu to set the tracked line […]

为什么使用匿名类型而不是创建类

我正在重构一个较旧的应用程序,它使用动态内联SQL,从大型Oracle数据库中提取数据。 我创建了一个工作正常的存储过程(PL / SQL)。 因为它只有一行(datarow),所以我让它返回一个数据行。 该类位于DAL中。 在我重构的过程中,我认为我会将数据库(在DAL中)与业务层隔离(使用linQ)。 我的第一个想法是创建一个包含返回的数据行的对象。 我的一位同事推荐匿名类型 ,我不熟悉。 在我迄今为止所做的阅读中,它看起来很简单。 如果我仍然必须使用匿名类型放置字段名和字段类型,我只是没有看到它的值。 我错过了什么吗? 如果我返回一个数据集/数据表,那么使用匿名类型会有更多的价值吗?

LINQ Group通过多个ref-type字段; 自定义EqualityComparer

所以我在SO和其他地方看了大约20个例子,但没有找到一个涵盖我正在尝试做的事情。 这个 – 我可以指定我的显式类型比较器内联吗? – 看起来像我需要的东西,但不够远(或者我不明白如何进一步采取它)。 我有一个LoadData列表,LoadData对象包含引用和值类型的字段 需要对ref和value字段的混合进行分组,将输出投影为匿名类型 需要(我认为)提供自定义IEqualityComparer来指定如何比较GroupBy字段,但它们是匿名类型 private class LoadData { public PeriodEndDto PeriodEnd { get; set; } public ComponentDto Component { get; set; } public string GroupCode { get; set; } public string PortfolioCode { get; set; } } 我到目前为止最好的GroupBy查询: var distinctLoads = list.GroupBy( dl => new { PeriodEnd = dl.PeriodEnd, Component […]