【c# – 实体框架查询未命中过滤索引WHERE BIT字段= 0】教程文章相关的互联网学习教程文章

【转载】 C#中通过Where方法查找出所有符合条件的元素集合【代码】

在C#的List集合对象中,FirstOrDefault方法可以用于查找List集合中符合条件的第一个元素,如果需要根据条件查找到List集合中的所有符合条件的元素对象集合,则需要使用到List集合的扩展方法Where()方法,Where方法的书写方式为Lambda表达式的书写形式,通过Where方法查找出符合条件的元素后再通过ToList方法可转换回原来的List集合对象类型。 举例如下,List集合testList为自定义类的List集合对象,首先往List集合中写入3条记录,具...

c# – 我们如何检索WhereSelectListIterator的第一项?【代码】

我们如何检索WhereSelectListIterator的第一项?通常,我使用foreach循环来迭代.有没有办法调用myResult [0]或myResult.FirstOrDefault()的等价物.两者都抛出错误. myResult.ToList()也不起作用.我开始认为我们可以用WhereSelectListIterator做的唯一事情是使用foreach进行迭代. 这是场景:我创建了一个带有Shape布局的Orchard Query.形状模板包含以下代码:@{// content items is of type WhereSelectListIterator<T,T>var content...

c# – 如何告诉Dapper使用varchar作为使用“IN”的“WHERE”子句中的params列表?【代码】

我找到了使用Dapper使用字符串作为输入搜索VARCHAR字段的解释和解决方案:Query<Thing>("select * from Thing where Name = @Name", new {Name = new DbString { Value = "abcde", IsFixedLength = true, Length = 10, IsAnsi = true });资料来源:Dapper and varchars 但有没有办法调整它来为列表中的每个项目进行DbString转换(使用IN子句)? 我试图运行的查询如下所示:Query<IndexRec>("SELECT * FROM T_INDEX WHERE CallId IN...

c# – 实体框架查询未命中过滤索引WHERE BIT字段= 0【代码】

我注意到Entity Framework使用负布尔过滤器转换LINQ查询,这样生成的查询计划就不会使用过滤索引.例如,查询:context.Foo.Count(f => !f.IsActive)生成SQL语句:SELECT [GroupBy1].[A1] AS [C1]FROM ( SELECT COUNT(1) AS [A1]FROM [dbo].[Foos] AS [Extent1]WHERE [Extent1].[IsActive] <> cast(1 as bit)) AS [GroupBy1]请注意WHERE子句使用[IsActive]<>强制转换(1为位),而不是更直观[IsActive] = 0.这在使用过滤索引时会成为问题...

c# – 为什么在这个例子中需要“where T:class”?【代码】

示例代码:using System.Collections.Generic; using FileHelpers;.... private void Save<T>(string destFilename, IEnumerable<T> data) where T : class {var engine = new FileHelperEngine((typeof(T)));engine.HeaderText = engine.GetFileHeader(); engine.WriteFile(destFilename, data); // XX }在第XX行,engine.WriteFile的第二个参数是期望IEnumerable< object>.这段代码工作正常. 我的问题是,为什么方法需要“whe...

c# – 如何否定IQueryable的Where子句【代码】

我创建了一个扩展方法来封装一些像这样的逻辑(这是一个非常简化的版本):public static IQueryable<Cargo> ReadyToCarry(this IQueryable<Cargo> q) {VehicleType[] dontNeedCouple = new VehicleType[] { VehicleType.Sprinter, VehicleType.Van, VehicleType.Truck };return q.Where(c => c.DriverId > 0 && c.VehicleId > 0).Where(c => c.CoupleId > 0 || dontNeedCouple.Contains(c.Vehicle.Type)); }所以我可以像这样使用它:...

c# – 如果你知道类型,为什么要使用“List where T:SomeType”【代码】

我试图理解通用约束.可悲的是,我现在没有理由使用它们,但我会尽力提出情况,以便我可以玩它,并了解它们将如何/何时提供帮助. 我遇到了一个问题.对我来说,这两个是相同的public List<T> Get<T>() where T : DemoClassTwo public List<DemoClassTwo> Get()两者都将返回一个List,并且必须是DemoClassTwo类型,因此我不明白为什么我会使用该约束的方法. 一些实际的代码来证明这一点static void Main(string[] args) {var dco = new DemoC...

c# – 如何重用EF中的where子句【代码】

我想使用EF进行查询,我的查询如下所示var users = MyDbc.AspNetUsers.Where(d => (d.UserPlans.Where(m => m.IsActive == 1).FirstOrDefault().PlanId == 2||(d.UserPlans.Where(m => m.IsActive == 1).FirstOrDefault().PlanId == 3 && d.UserGroups.FirstOrDefault().Group.AdminId == d.Id)));如何避免两次查询UserPlans?在SQL中我会写以下内容SELECT * FROM AspNetUsers U INNER JOIN UserPlan UP ON U.Id = UP.UserId WHERE...

为动态关键字构建动态where子句或使用IQueryable C#Linq【代码】

我正在尝试使用LINQ编写动态where子句,以返回包含字符串数组中提供的任何关键字的所有行.结果并没有像我预期的那样回到目前为止看到SQL我可以看到问题.IQueryable<comments> query = _db.comments;if (score != null)query = query.Where(x => x.score == score); if (dateFrom != null)3query = query.Where(x => x.date_created >= dateFrom); if (dateTo != null)query = query.Where(x => x.date_created <= dateTo); if (keyw...

C#之Linq、where()、FindAll()的区别【代码】【图】

原地址 C#之Linq、where()、FindAll()的区别 对于实现了IEnumerable接口的类、类型、集合可以使用Linq、Linq的扩展方法where()、FindAll()来查询符合谓词约束的数据。这三者之间执行的方式是不一样的,同样的数据同样的查询条件返回的结果也不相同。先上代码再分析。 public static void LaterSelect() { var names = new List { "Nino", "Alberto", "Juan", "Mike", "Phil" }; var namesWithJ = from n in names ...

CodeGo.net>如何在LINQ的SQL插入或更新有一个where子句?【代码】

我正在尝试将以下存储的proc转换为LinqToSql调用(这是SQL的简化版本):INSERT INTO [MyTable]([Name], [Value]) SELECT@name, @value WHERENOT EXISTS(SELECT [Value] FROM [MyTable] WHERE [Value] = @value)DB对要检查的字段没有约束,因此在这种特定情况下,需要手动进行检查.另外,还有许多项目会不断插入,因此我需要确保在发生这种特定插入时,不会重复使用value字段.我的第一个直觉是执行以下操作:using (TransactionScope scop...

将C#字符串作为SELECT WHERE IN的SQL参数传递【代码】

我正在编写一个函数,以从列表框中选取尽可能多的多个选定项,然后从另一个表中选择过滤后的值,然后将vaule传递给SQL查询以将值插入到表中.我键入的代码在下面,似乎不起作用(问题在于我将字符串传递给查询的方式.string lbSites = "";protected void Button1_Click1(object sender, EventArgs e) {string cns = "server=abc;database=testDB;Trusted_Connection=True";using (SqlConnection con = new SqlConnection(cns)){using (Sq...

构造动态where子句,Linq To Sql【代码】

我先使用EF Code 4.2,当需要动态构建where子句时,您提出什么样的解决方案?但是将非常需要包含功能:var results = db.Set<dynamicType>.Where("dynamic conditions").Include("....");上面的动态条件需要查找另一个表以过滤记录: 如果我想用Linq表达式编写它,则将类似于:var result = db.Set<Contact>().Where(c=>c.AccountId == _Id_param || db.Set<LinkTable>().Any(a=>a.FkFieldId == c.AccountId && a.ParentId == _Id_par...

递归调用Linq或SQL中的Where子句【代码】

假设我有以下过滤器参数:Type="Student" School = "High" ReferenceID = "123abc" PaymentOnFile= "Y"现在,我需要根据这四个参数找到第一名学生.如果没有找到学生,那么我需要根据3个参数找到他们,如果没有找到学生,则使用2个参数,依此类推. 这是我当前的代码:var Student = db.Students.Where(x=> x.School == School && x.Type == Type && x.ReferenceID == ReferenceID && x.PaymentOnFile == PaymentOnFile).FirstOrDe...

WHERE columnName =问题在C#中的MySQL查询中【代码】

我在要使用PHP的Linux服务器上与Windows Server交互的Windows Server上具有C#Web服务. PHP从数据库中获取信息,然后页面上提供了一个“更多信息”按钮,该按钮随后调用Web服务并将记录的名称字段作为参数传递.所以我在查询中使用了WHERE语句,所以我只提取该记录的额外字段.我收到错误消息:System.Data.SqlClient.SqlException:Invalid column name ’42’其中42是数据库名称字段中的值. 我的查询是string selectStr = "SELECT name,...

框架 - 相关标签