Tag: linq

LINQ基于分组填充树视图

我在SO上找到了这个C#答案,但似乎无法实现这一点: c#从LINQ对象填充树视图 在我的例子中,假设我有一个List(Of Report_Data) ,例如,它看起来像这样: Var1 Var2 V1 Sub Item 1 V1 Sub Item 2 V1 Sub Item 3 V2 Sub Item 1 V2 Sub Item 2 V3 Sub Item 1 而且我希望使用LINQ来填充树视图,如下所示: V1 (CheckBox) ——-Sub Item 1 (CheckBox) ——-Sub Item 2 (CheckBox) ——-Sub Item 3 (CheckBox) V2 (CheckBox) ——-Sub Item 1 (CheckBox) ——-Sub Item 2 […]

动态linq,如何生成LIKE和NOT LIKE

在我的场景中,我必须根据用户在屏幕上选择的内容构建动态查询。 用户可以选择列名,然后选择运算符,然后键入值。 我已经为了相同而做了它,但是LIKE和NOT LIKE的语法怎么样? 所以 1。 我将列名添加到我的列表中 var columns = new Dictionary { {“CurrentStatus”, “Current Status”}, {“RequestNumber”, “Request Number”}, {“RequestDate”, “Request Date”}, {“IsOnHold”, “Is On Hold”}, {“BrandReturnedVehicle”, “Brand Returned Vehicle”}, {“TypeReturnedVehicle”, “Type Returned Vehicle”}, {“ChassisReturnedVehicle”, “Chassis Returned Vehicle”}, {“DestructionCertificateNumberReturnedVehicle”, “Destruction Certificate Number Returned Vehicle”}, {“AmmountWithVAT”, “Ammount WithVAT “}, {“AmmountWithoutVat”, “Ammount Without Vat”}, {“Percentage”, “Percentage”}, {“VehicleDestructionDate”, […]

LINQ Set操作无法正常工作(相交,除外)

我想使用Uber-Coolness of LINQ set操作来表达以下内容: foreach (Group group in groups) { if (user.Groups.Contains(group)) { assignedGroups.Add(group); } else { availableGroups.Add(group); } } 我认为它应该是一个双线实现这个: var assigned = user.Groups.Intersect(groups); var available = groups.Except(user.Groups); 每当我运行此示例时,foreach方法正确填充我的列表,而set操作导致空的分配列表和填充的可用列表。 我认为它必须是关于等式检查的问题,但是Contains()工作的事实certificate这是错误的。 任何人都可以帮我看看我的误解吗? IEnumerable 组也是LINQ查询的结果,以防信息有所帮助……

编写LINQ C#的方法

我对以下事情感到困惑。 我一直在我的项目中使用LINQ,使用以下格式: var query = from obj_i in set1 join obj_j in set2 on new { JoinField1 = obj_i.SomeField1, JoinField2 = obj_i.SomeField2, JoinField3 = obj_i.SomeField3, JoinField4 = obj_i.SomeField4 } equals new { JoinField1 = obj_j.SomeOtherField1, JoinField2 = obj_j.SomeOtherField2, JoinField3 = obj_j.SomeOtherField3, JoinField4 = obj_j.SomeOtherField4 } 但最近我被告知,下面也是编写LINQ查询的“另一种方式”。 var query = from obj_i in set1 join obj_j […]

如果没有数据上下文,如何保存Linq对象?

我有一个Linq对象,我想对它进行更改并保存它,如下所示: public void DoSomething(MyClass obj) { obj.MyProperty = “Changed!”; MyDataContext dc = new MyDataContext(); dc.GetTable().Attach(dc, true); // throws exception dc.SubmitChanges(); } 例外是: System.InvalidOperationException: An entity can only be attached as modified without original state if it declares a version member or does not have an update check policy. 看起来我有几个选择: 在我需要以这种方式使用的每个Linq类和表(100+)上放置一个版本成员。 找到最初创建对象的数据上下文,并使用它来提交更改。 在每个类中实现OnLoaded并保存此对象的副本,我可以将其传递给Attach()作为基线对象。 要进行并发检查; 在附加之前加载DB版本并将其用作基线对象(不是!!!) 选项(2)似乎是最优雅的方法,特别是如果我能找到一种在创建对象时存储对数据上下文的引用的方法。 […]

如何在LinQ中合并多个集合

我在Linq有3套,像这样: struct Index { string code; int indexValue; } List reviews List products List pages 这些列表有不同的代码。 我想合并这些集如下: 在评论中取第一个 拿第一个产品 以第一页为准 在评论-…中取第二个,依此类推,请注意这些列表的大小不同。 我怎么能在Linq做到这一点? 编辑:等等,如果没有.NET 4.0,是否有更改? 非常感谢你

比较IPAddress(存储为varbinary)

我的Activity表上有一个IPAddress列。 它存储为varbinary(16),因此它可以高效(比存储为字符串更多)并且还支持IPv6。 当我存储时,我基本上得到(new System.Net.IPAddress(“127.0.0.1”))。GetAddressBytes()的值。 我希望能够做的是搜索以某些字节开头的所有IP地址,例如“127. *”。 我可以很容易地得到那个字节,所以假设我能够获得新的byte [] {127}。 鉴于此,我如何实际编写LINQ to SQL查询以获取我想要的数据? 可悲的是,我没有StartsWith,虽然我基本上想要相当于Activity.Where(a => a.IPAddress.StartsWith(new byte [] {127}))。

如何注册CLR用户定义函数以用于linq查询?

使用SQL Server 2008我想在比较之前对DB值运行正则表达式。 我正在研究CLR用户定义函数(我调查了EDM函数,但我得到的印象是UDF更适合正则表达式 – 如果我错了请纠正我)。 理想情况下,我想像这样做一个linq调用: var results= db.Items.Where(i => i.CustomFormatFunction() == xyz); 到目前为止,我有这个c#代码: public static partial class UserDefinedFunctions { [SqlFunction] public static SqlString CustomFormatFunction(string str) { return Regex.Replace(Regex.Replace(HttpUtility.HtmlDecode(str), @”\s+”, “-“), “[^a-zA-Z0-9/-]+”, “”).ToLower(); } } 为了使我能够在linq查询中使用它,还需要哪些步骤?

通用Linq DataContext

假设我有一个名为User的表。 使用LINQ desinger,我将得到以下结果: 一个名为User.dbml的文件 一个名为UserDataContext的数据上下文类,它是System.Data.Linq.DataContext的子类 一个名为User的类,它从User表映射。 UserDataContext对象将具有名为Users的属性,其类型为System.Data.Linq.Table 。 到现在为止还挺好。 现在我想定义一个通用基类,它将Linq.Table属性转换为所有子类的JSON字符串。 所以我会: using Newtonsoft.Json; class BasePlugin where T : System.Data.Linq.DataContext, new() { protected T DataContext = new T(); protected string GetJSONData() { //*** DataContext if of type System.Data.Linq.DataContext, therefore it won’t know the Linq Table property of its subclasses return JsonConvert.SerializeObject(DataContext.Cannot_get_subclass_property_Linq_table); } } 要完成问题中的代码,这是一个子类的示例: class UserPlugin […]

设计Fluent界面方法

我正在尝试编写DSL 我有返回字符串的方法,但如果我想组合字符串,我需要使用+符号,但我想一起调用这些方法,但我不确定如何实现它 我现在有方法如 MyStaticClass.Root() MyStaticClass.And() MyStaticClass.AnyInt()返回字符串的MyStaticClass.Root() MyStaticClass.And() MyStaticClass.AnyInt() 我希望能够做到 Root().And().AnyInt()导致字符串