jjzjj

c# - NHibernate 高效删除使用 LINQ Where 条件

有一个NHibernate的存储库,带有这样的LINQ查询varq=fromxinSomeIQueryablewherex.A1==a1&&x.B1==b1selectx;是否有解决方案如何获取此WHERE过滤器并将其应用于“一次性删除”,这似乎只能通过HQL实现:varcmd=string.Format("deletefromSomeEntitywherex.A1='{0}'andx.B1={1}",a1,b1);session.CreateQuery(cmd).ExecuteUpdate(); 最佳答案 现在可以使用Nhiber

c# - Linq 性能 : should I first use `where` or `select`

我在内存中有一个很大的List,来自一个具有大约20个properties的类。我想仅根据一个property过滤此列表,对于特定任务我只需要该property的列表。所以我的查询是这样的:data.Select(x=>x.field).Where(x=>x=="desiredvalue").ToList()先使用Select还是使用Where哪个性能更好?data.Where(x=>x.field=="desiredvalue").Select(x=>x.field).ToList()如果这与我将数据保存在内存中的数据类型或字段类型有关,请告诉我。请注意,我也需要这些对象来执行其他任

c# - EventLogReader 和 EventRecord : Where's the Message?

我想查询远程机器上的应用程序事件日志,我求助于使用EventLogReader而不是EventLog因为它需要很长时间才能找到事件我需要EventLog。然而,尽管使用EventLogReader可以更快地找到事件,但我还是无法弄清楚我需要的信息在这个对象上到底在哪里……尤其是消息。publicstaticvoidLoad(){stringquery="*[System/Provider/@Name=\"SQLSERVERAGENT\"]";EventLogQueryelq=newEventLogQuery("Application",PathType.LogName,query);e

c# - 休眠 + QueryOver : filter with Where ignoring sensitive

我正在尝试使用QueryOver在nHibernate中构建一个简单的查询,但我希望它将所有内容转换为小写或忽略敏感信息:Domain.UserUser=Session.QueryOver().Where(x=>x.Login=="username").SingleOrDefault();我怎样才能做到这一点?更新:有人建议问题可能出在数据库的集合上,但我从来没有遇到过任何问题,这个脚本有效:Domain.UserUser=Session.CreateCriteria().Add(Expression.Eq("Login","username")).UniqueResult();

c# - Linq:只为 Where 和 OrderBy 调用相同的方法一次而不是两次?

我有一个简单的linq查询,我需要在一定距离内过滤商店,并根据距离计算结果排序,你懂的。因此,我暂时调用了两次GetDistance方法。如何优化代码以在每个商店只调用一次?doubledistance=50;varresult=stores.Where(s=>Helper.GetDistance(lat,lon,s.Lat,s.Lon)Helper.GetDistance(lat,lon,s.Lat,s.Lon)).ToList(); 最佳答案 一些人(我)觉得更容易阅读的与Yuriy的回答等价的是:doublemaxDistan

c# - LINQ: ...Where(x => x.Contains(以 "foo"开头的字符串 ))

给定以下类的集合:publicclassPost{...publicIListTags{get;set;}}有没有一种简单的方法可以使用LINQ获取所有包含以“foo”开头的标签的Post?varposts=newList{newPost{Tags=new[]{"fooTag","tag"}},newPost{Tags=new[]{"barTag","anyTag"}},newPost{Tags=new[]{"someTag","fooBarTag"}}};varpostsWithFooTag=posts.Where(x=>[somefancyLINQqueryhere]);posts

c# - 使用 linq 2 实体检查 where 子句的两个条件

嗨,我有一个名为products的表,其中包含列product_idprodcut_nameprodcut_price(valueslike1200,2000,3000,100)prodcut_desccategory_id(1,2,3,.....)另一个带有列的表格类别category_id(1,2,3.......)category_name(a,b,c....)实体名称是dbcontext...如何获得类别名称为“a”且产品价格为>500且我正在使用linqtoentities...请帮忙解决这个问题......一个......非常感谢.... 最佳答

c# - DbContext -> DbSet -> Where 子句丢失( Entity Framework 6)

我已经阅读了一些EntityFramework6的教程...基础很简单。using(varcontext=newMyContext()){Useru=context.Users.Find(1);}但是如何在用户的“DbSet”上使用“Where”或其他东西呢?publicclassMyContext:DbContext{publicMyContext():base("name=MyContext"){//this.Database.Log=Console.Write;}publicvirtualDbSetUsers{get;set;}}用户[Table("User")]publiccl

c# - LINQ- Max where 条件

我有一个定义如下的TaskWeekUI类:publicclassTaskWeekUI{publicGuidTaskWeekId{get;set;}publicGuidTaskId{get;set;}publicGuidWeekId{get;set;}publicDateTimeEndDate{get;set;}publicstringPersianEndDate{get;set;}publicdoublePlanProgress{get;set;}publicdoubleActualProgress{get;set;}}我写了这个查询:TaskWeekUIti=tis.First(t=

c# - 数字必杀技 : Where does a callvirt of a non-existent method end up?

我在其基类中标记为抽象的库类上调用属性集访问器。现在在运行时我force应用程序针对另一个版本的库运行,其中类仅实现基类的底层接口(interface),但不是从它派生的。有趣的是,.NET将运行代码,但设置该属性没有任何效果。幕后发生了什么?违规代码:MyDbParameterparam=newMyDbParameter();param.ParameterName="p";Console.Out.WriteLine("ParameterName:"+param.ParameterName);库2.0(已编译)publicsealedclassMyDbParameter:System.