LINQ中的多个.Where()语句是一个性能问题吗?
我想知道多个()语句的性能是否存在性能.例如,我可以写: var contracts = Context.Contract .Where( c1 => c1.EmployeeId == employeeId ) .Where( c1 => !Context.Contract.Any( c2 => c2.EmployeeId == employeeId && c1.StoreId == c2.StoreId && SqlFunctions.DateDiff("day", c2.TerminationDate.Value, c1.DateOfHire.Value) == 1 )
0 2024-04-17
编程技术问答社区
Linq动态哪里算?
可以在哪里使用列表.我想要这样的东西: public class Customer { string FirtsName; string LastName; int Number; ..... } 我想使用复选框过滤客户.如果我选择一个名称和数字,则将在哪里生成子句 .where(x=> x.FirstName == "SomeFirstName" && x.Number == someNumber) 如果我仅选择数字,则将生成子句 .where(x.Number == someNumber) 如果我选择了firstName,lastname和number,则将生成子句的位置 .where(x=> x.FirstName == "SomeFirstName" && x.Number == someNumber && x.LastName == "LastName") 我的意思是不仅是动态列名称,而且我也想生成子句计数
0 2024-04-17
编程技术问答社区
C#代码中where子句的混淆
public interface ICrudService where T: Entity, new() 上面代码末尾的" new()"的含义是什么? 解决方案 new()意味着T必须具有无参数构造函数. 这是一种帮助,使您能够在通用类/方法中构造类型T的对象: public T Create() { return new T(); }
0 2024-04-15
编程技术问答社区
LINQ是否可以动态地添加where子句?
我想用不同的键搜索我的数据库.根据输入,可能有10个键的键.有没有一种方法可以动态地添加或/和子句? keys[k] // I have my keys in this array var feedList = (from feed in ctx.Feed where feed.content.contains(keys[0]) && feed.content.contains(keys[1]) && ... // continues with the keys.length select new { FeedId = feed.DuyuruId, FeedTitle = feed.FeedTitle,
0 2024-04-15
编程技术问答社区
C# Linq: 用一个*OR*子句组合多个.Where()。
我一直在搜索我当前的问题,但找不到解决这个问题的真正答案. 我正在尝试构建一个产生以下SQL的LINQ查询: SELECT * FROM TABLE WHERE (Field1 = X, Field2 = Y ... ) or (Field3 = Z) 在正常情况下,我会这样做: Object.Where(c => (c.Field1 == X && c.Field2 == Y) || (c.Field3 == Z)) 我无法使用此方法,因为查询是通过使用多个.Where()调用来构建的. 有一个示例: // This is a short example, the real world situation has 20 fields to check and they are all connected with an AND. if (model.Field1.HasValue) { Query = Query.Where(c => c
0 2024-04-12
编程技术问答社区
Linq通过变量访问属性
假设我有一个类似: 的课程 public class Foo { public string Title {get;set;} } 现在,假设我有一个public List myList我想通过linq过滤, var x = myList.Where(f => f.Title == myValue); 到目前为止,一切都很好. 但是如何通过变量访问属性?类似: string myProperty = "Title"; var x = myList.Where(f => f.myProperty == myValue); 解决方案 您可以编写扩展方法 public static class MyExtensions { public static object GetProperty(this T obj, string name) where T : class { Type t = ty
0 2024-04-11
编程技术问答社区
C# FindAll VS Where Speed
任何人都知道列表中的位置和Findall之间的任何速度差异.我知道iEnumerable的一部分是列表的一部分,我只是很好奇什么速度更快. 解决方案 列表的Findall方法实际上构建了一个新列表对象,并为其添加了结果. iEnumerable 的其中扩展方法将简单地在现有列表上迭代,并在不创建或添加任何内容的情况下对匹配结果进行枚举(除了枚举本身以外.) 给定一个小集,两者的性能可能会相当.但是,给定一个较大的集合,在哪里应该跑得超越findall,因为创建的用于包含结果的新列表必须动态增长以包含其他结果.随着匹配结果的数量增加,Findall的内存使用情况也将开始成倍增长,在此,其中应具有恒定的最小内存使用量(本身和...不包括您对结果所做的一切.) ) 其他解决方案 Findall显然比在哪里慢,因为它需要创建一个新列表. 无论如何,我认为您真的应该考虑乔恩·汉娜(Jon Hanna)的评论 - 您可能需要在您的结果上进行一些操作,并且在许多情况下,列
2 2024-04-11
编程技术问答社区
如何在Linq where子句中指定动态字段名?
如果创建一个包含LINQ标准的过滤对象,该对象通常在此类似的条款中进行: var myFilterObject = FilterFactory.GetBlank(); myFilterObject.AddCondition("Salary", "lessThan", "40000"); var myResult = myRepository.GetEmployees(myFilterObject); 您如何在不使用大案例语句的情况下将LINQ字段与字段名称匹配? return from e in db.Employee where e.Salary { Name= e.name, Salary= e.Salary }; 我假设您需要将对象发送到指定过滤的存储库,以便您仅拉出所需的记录.我认为Linq不会预编译(除非您创建自定义的委托和功能)
2 2024-04-11
编程技术问答社区
你能在c#中使用 "where "来要求一个属性吗?
我想做一个仅接受可序列化类的通用类 我正在寻找的概念是: public class MyClass where T : //[is serializable/has the serializable attribute] 解决方案 不,恐怕不是.您唯一可以使用约束的事情是: where T : class -t必须是参考类型 where T : struct - t必须是不可阻止的值类型 where T : SomeClass -t必须是躯体或源自 where T : ISomeInterface - t必须是iSomeInterface或实现 where T : new() - t必须具有公共参数构造函数 各种组合是可行的,但不是全部. 什么都不是属性. 其他解决方案 我所知道的;你不可以做这个. 尽管您是否添加"初始化"方法或类似方法? public void Initialize(T obj) { object
2 2024-04-11
编程技术问答社区
C#通用 "where约束 "与 "任何通用类型 "的定义?
让我举个例子: 我有一些通用类/接口定义: interface IGenericCar {...} 我有另一个我想与上面类相关的类/接口,例如: interface IGarrage : where TCar: IGenericCar {...} 基本上,我希望我的通用igarrage取决于IGenericCar,无论它是IGenericCar或IGenericCar,因为我对该类型没有任何依赖. 解决方案 通常有2种方法可以实现这一目标. option1 :将另一个参数添加到表示T的IGarrage,该参数应传递到IGenericCar约束中: interface IGarrage where TCar : IGenericCar { ... } option2 :定义IGen
0 2024-04-10
编程技术问答社区
LINQ中的动态WHERE子句
在linq语句中,组装动态的最佳方法是什么? 我的表单上有几十个复选框,并将它们传递回:字典>(字典>)到我的linq Query. public IOrderedQueryable GetProductList(string productGroupName, string productTypeName, Dictionary> filterDictionary) { var q = from c in db.ProductDetail where c.ProductGroupName == productGroupName && c.ProductTypeName == productTypeName // insert dynamic filter here orderby c.ProductTypeName
0 2024-04-10
编程技术问答社区
Linq to Entities中的动态where子句(OR)。
在这里我学会了如何构建动态使用LINQ的延期执行查询.但是查询实际上是在使用和的串联. 如何实现相同的查询但使用或逻辑? 由于标志枚举,查询应搜索用户名, Windowsusername 或 ot : public User GetUser(IdentifierType type, string identifier) { using (var context = contextFactory.Invoke()) { var query = from u in context.Users select u; if (type.HasFlag(IdentifierType.Username)) query = query.Where(u => u.Username == identifier); if (type.HasFlag(IdentifierType.Windows))
0 2024-04-10
编程技术问答社区
EF。包括在where子句中
标题暗示我正在寻找一种方法来完成一个条款与Ancome and concement. 这是我的情况: 我负责支持充满代码气味的大型应用程序. 更改过多的代码会导致到处都有错误,因此我正在寻找最安全的解决方案. 假设我有一个对象巴士和一个对象人(巴士有人的导航道具收集). 在我的查询中,我需要选择只有清醒的乘客的所有公共汽车.这是一个简单的虚拟示例 在当前代码中: var busses = Context.Busses.Where(b=>b.IsDriving == true); foreach(var bus in busses) { var passengers = Context.People.Where(p=>p.BusId == bus.Id && p.Awake == true); foreach(var person in passengers) { bus.Passengers.Add(person); } }
0 2024-04-10
编程技术问答社区
Rails 4.x如何用activerecord查询布尔值?
i Boolean在我的模型" Perks"上"猜到了",我正在尝试使所有具有特权的客户在猜测的位置为真. 我的第一个猜测是: @customer = Customer.includes(:perks).where('perks.guessed = true') ,但这给了我一个SQL-Exception:"没有这样的列:true" 谷歌搜索给了我这个主题: Rails-如何根据布尔场搜索? (mysql错误) 所以我尝试了: @customer = Customer.includes(:perks).where('perks.guessed = 1') 没有运气... 也尝试了: @customer = Customer.includes(:perks).where('perks.guessed LIKE, ?', 'true') @customer = Customer.includes(:perks).where('perks.g
0 2024-04-01
编程技术问答社区
如何反转numpy.where(np.where)函数
我经常使用numpy.在哪里函数来收集具有某些属性的矩阵索引的元组.例如 import numpy as np X = np.random.rand(3,3) >>> X array([[ 0.51035326, 0.41536004, 0.37821622], [ 0.32285063, 0.29847402, 0.82969935], [ 0.74340225, 0.51553363, 0.22528989]]) >>> ix = np.where(X > 0.5) >>> ix (array([0, 1, 2, 2]), array([0, 2, 0, 1])) ix现在是包含行和列索引的Ndarray对象的元组,而子表达x> 0.5包含一个单个布尔矩阵,指示哪些单元格具有> 0.5属性.每个表示都有自己的优势. 当需要时,将ix对象的最佳方法转换回布尔值是什么?例如 G = np.zeros(X.shape,dtype=np.bool
2 2024-04-01
编程技术问答社区
Mysql查询在where子句中检查blob列的类型
我发现CONVERT(object USING utf8)是为了将斑点转换为文本,但是在此处的子句中似乎并不有效: : Select * from Page where CONVERT(Page.page_title USING utf8) = 'AccessibleComputing' 这是唯一的方法和正确的方法吗?因为它花了太多时间.还是我应该以某种方式将"访问权限计算"转换为二进制文件? 解决方案 我尝试了此操作: Select * from Page where Page.page_title = 'AccessibleComputing' 我认为毕竟它不需要任何转换. 其他解决方案 这些工作吗? Select *, CAST(Page.page_title AS CHAR(10000) CHARACTER SET utf8) AS Tmp from Page where Tmp = 'AccessibleComputing'
2 2024-04-01
编程技术问答社区
如何在MS-ACCESS中进行位操作运算
在MSACCESS内部,我想在此类查询的WHERE子句中使用相对简单的位置操作: SELECT * FROM Table1 WHERE Column1 (some operator) 8 = 0 这将: 返回行,其中Column1没有其第四位设置,例如0、1、2,...,7(全部都清除了第四位)和16(是00010000B) 排除行,其中Column1是8、9、10,...,15等. ps:位运算符与布尔操作不同吗? 解决方案 If you can run your query in in 以下代码示例将其打印到即时窗口: 8 AND 7: -1 8 BAND 7: 0 第一种情况(和)将两个数字视为真实值,因此True AND True给出-1(true).我认为乐队的方法就是您所追求的. Public Sub BitwiseAndQuery() 'the db engine treats numbers as boolean
2 2024-03-31
编程技术问答社区
Android/SQLite-Bit对WHERE子句的操作
我想知道是否有可能在这样的Android中做: public Cursor getFlowsByCategory(int type, int categoryID, int limit) { SQLiteDatabase db = dbHelper.getReadableDatabase(); final String[] columns = {ID, FLAGS, SUBJECT, AMOUNT, AMOUNT_NO, CATEGORY}; final String selection = "((" + FLAGS + " & ?) >> 1 = ?) AND (" + CATEGORY + " = ?)"; final String[] selectionArgs = {Integer.toString(Flow.FLOW_TYPE), Integer.toString(type), Integer.toString(categoryID)}
0 2024-03-31
编程技术问答社区
SQL-Where标准查找A-F之间的名字
简单的问题: 我需要一个解决方案,以便可以在A-F之间找到名称,包括所有以f. 开头的名称 如果您在使用或a> = value 注意: 用户将看到2个接受范围用户可以输入的文本框.用户优化了在F边界上的距离:" FA"中的用户类型意味着结果应返回:Fauder,Fail,Famber,...等 我目前有2个解决方案,但有一种更好的方法. 解决方案1: 这将在外部边界中增加1个,但如果有单个" g"的名称,则可能包括结果,但极不可能. 其中名称> ='a'和 解决方案2: 该解决方案附加了字母字段长度时间的最后一个字母. 其中名称> ='a'and 尽管上述解决方案是可行的,但我的搜索可以进行完善: a到FS(应该给我从A到和包括FS的所有内容....).使用此解决方案#1被打破,因为它与单个ASCII一起使用. 欢迎建议. 解决方案 在评论中,您扩展了要求A - Fxxx. SET @start = 'A' SET @end = 'Fxxx
0 2024-03-30
编程技术问答社区
SQL : BETWEEN vs <= and >=
在SQL Server 2000和2005中: 这两个WHERE条款有什么区别? 我应该在哪种情况下使用哪一个? 查询1: SELECT EventId, EventName FROM EventMaster WHERE EventDate BETWEEN '10/15/2009' AND '10/18/2009' 查询2: SELECT EventId, EventName FROM EventMaster WHERE EventDate >='10/15/2009' AND EventDate = '10/15/2009' and EventDate
4 2024-03-30
编程技术问答社区