Tag: linq

如何使用Dynamic LINQ使用GroupBy

我正在尝试使用动态LINQ进行GroupBy,但无法使其工作。 这是一些说明问题的示例代码: List listAlbums = new List(); for (int i = 0; i < 5000; i++) { dtoMyAlbum album = new dtoMyAlbum { Author = "My Author", BookID = i, CurrSymbol = "USD", Price = 23.23, Shop = i % 3 == 0 ? "TESCO" : "HMV" }; listAlbums.Add(album); } IQueryable mydata = listAlbums.AsQueryable(); int […]

LINQ InsertOnSubmit:NullReferenceException

我有这个代码: using DC = MV6DataContext; using MV6; // Business Logic Layer // … public DC.MV6DataContext dc = new DC.MV6DataContext(ConnectionString); IP ip = new IP(Request.UserHostAddress); dc.IPs.InsertOnSubmit(ip); dc.SubmitChanges(); // in Business Logic layer: public class IP : DC.IP { public IP(string address) { … } } 在尝试InsertOnSubmit(ip)时,我得到一个NullReferenceException(对象引用未设置为对象的实例)。 dc不为空; ip和ip的所有属性都不为null; 虽然有些是空的。 VS2008不会让我进入InsertOnSubmit,因此在评估时我无法知道具体为null。 是什么赋予了? 注意:我已经检查过,并且由FK关系创建的所有Linq.EntitySets都存在且非空。

使用C#中Dynamic Linq中的“Contains”关键字查询数据

我在C#中执行动态linq中包含’Contains’关键字的查询时遇到了一些问题。 我收到以下错误 “Int32”类型中不存在任何属性或字段 我的代码如下: 如果我为数据类型字符串字段使用’Contains’关键字,那么它可以正常工作,如下所示 string[] CandidateNamesArray = new string[]{“Ram”, “Venkat”, “Micheal”} var dynamicLinqQuery = Candidates.Where(“CandidateName.Contains(@0)”, CandidateNamesArray ); 工作良好 但是如果我对数据类型int字段使用’Contains’关键字,那么它会抛出exception,如下所示 int[] CandidateIdsArray = new int[]{4, 78, 101} var dynamicLinqQuery = Candidates.Where(“CandidateId.Contains(@0)”, CandidateIdsArray); 运行时exception – “类型’Int32’中不存在适用的方法’包含’” 也尝试以下面的另一种方式 int[] CandidateIdsArray = new int[]{4, 78, 101} var dynamicLinqQuery = Candidates.Where(“@0.Contains(CandidateId)”, CandidateIdsArray); 运行时exception – “类型’Int32’中不存在属性或字段’CandidateId’” 我花了将近2天的时间来解决上述问题,但未能成功。 任何人都可以帮我解决上述问题……先谢谢

除了与Distinct有类似的效果?

我刚刚发现Except()将从第一个列表中删除第二个列表中的所有元素,但它还具有使得返回结果中的所有元素都不同的效果。 我正在使用的简单方法是Where(v => !secondList.Contains(v)) 任何人都可以向我解释为什么这是行为,如果可能的话,请指出解释这个问题的文档?

具有多个OR条件的Linq to Entity Join表

我需要编写一个可以获得以下SQL查询的Linq-Entity状态 SELECT RR.OrderId FROM dbo.TableOne RR JOIN dbo.TableTwo M ON RR.OrderedProductId = M.ProductID OR RR.SoldProductId= M.ProductID WHERE RR.StatusID IN ( 1, 4, 5, 6, 7 ) 我坚持使用以下语法 int[] statusIds = new int[] { 1, 4, 5, 6, 7 }; using (Entities context = new Entities()) { var query = (from RR in context.TableOne join M […]

DataGridView AllowUserToAddRow属性不起作用

我有一个带有Entity Framework的简单项目,我在Form有一个DataGridView ,我将其AllowUserToAddRow属性设置为true但我仍然无法在其中添加新行。 这是我的代码: DBEntities context = new DBEntities(); private void Form1_Load(object sender, EventArgs e) { var q = (from i in context.myTable select i).ToList(); DataGridView.DataSource = q; } private void btnSave_Click(object sender, EventArgs e) { context.SaveChanges(); MessageBox.Show(“saved successfully”); } 如果我使用BindingSource控件,它允许我在DataGridView插入行,但在我调用context.SaveChanges()后,在我的数据库文件中没有插入任何内容。 所以我想也许它的相对于这个问题, DataGridView与true AllowUserToAddRow属性不允许我在DataGridView插入行。

LINQ中的脱节联盟

我有两套(IList),我需要第一个列表中的所有项目,其中项目不在第二个列表中。 任何人都可以通过LINQ语句向我指出实现这一目标的最佳方法吗?

在Linq(C#)中将多个不同大小的集合动态交叉连接在一起

我有一个未知数量的桶(集合),每个桶具有未知数量的实体 我需要生成所有实体的笛卡尔积,这样我最终得到一个具有ARRAYS实体的COLLECTION,并且在每个数组中,每个桶都有1个代表。 因此,如果我有5个桶(B1..B5),并且桶B1,B2各有1个项目,而桶B3,B4和B5各有4个,8个和10个项目,我将收集320个数组,每个数组将有5个项目。 这里唯一的麻烦问题是,在开发时,桶的大小和桶的数量都是未知的。 性能在这里并不是非常重要,因为大多数时候,我的桶只有1个实体,而且很少有时候我的桶会包含20-30个项目…而且我通常会有5个30桶 我想在某种程度上利用linq,但是当我试图想象这是如何工作的时候,我的大脑正在变得油腻

如何在XML或XElement变量中获取特定元素Count

考虑这个XML: 1000 Nima Agha 1001 Ligha Ligha 1002 Jigha Jigha 1003 Aba Aba 我声明了一个XElement变量并创建了XML分配给它。 如何在C#中获取此XML变量中ID元素的数量?

LINQ to SQL:“UpdateCheck = Never”时不刷新更新

我有一个帐户实体,除了一个字段外,其中包含“UpdateCheck = Never”中的所有字段。 “ModifiedTime”字段使用“UpdateCheck = Always”。 目的是 – 并发检查应仅基于“ModifiedTime”列。 出于测试目的,我提供了用C#代码硬编码的“ModifiedTime”值。 因此,无需从数据库中获取任何值以实现并发性。 只有当我调用Refresh方法时,代码才会更新数据库。 这看起来很奇怪。 有什么方法可以避免这个吗 请参阅http://msdn.microsoft.com/en-us/library/bb386929.aspx中的 “不使用查询进行更新”部分 注意:我试图通过不使用Refresh来避免SELECT语句 生成的SQL SELECT [t0].[AccountNumber], [t0].[AccountType], [t0].[Duration], [t0].[DepositedAmount], [t0].[Prefernce], [t0].[Comment], [t0].[ModifiedTime] FROM [dbo].[Account] AS [t0] WHERE [t0].[AccountNumber] = @p0 — @p0: Input Int (Size = -1; Prec = 0; Scale = 0) [1] — Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.0.30319.1 […]