我需要在LINQ子句中使用C#列表。我可以在where子句中使用一个值进行查询,请指导如何在LINQ中使用C#列表。
下面是我的代码:
var usersList= new List<string>();
usersList.Add("User1");
usersList.Add("User2");
(from u in UserSet
where u.FullName.Equals("any user from usersList")
select u.FullName).Take(3).Dump();
如何让LINQ检查use
我正在尝试弄清楚如何在两种类型之间转换Linq表达式:一种在我的业务存储库中,另一种在域存储库中。这两种类型具有将在查询中使用的相同数据属性。在我的业务层中,我有以下方法来执行基于业务实体的查询:
业务存储库:域实体转换为业务实体
public IQueryable<CustomerVendorProduct> Query(Expression<Func<CustomerVendorProduct,bool>> filterInBusinessRepo)
因此,消费者可以做类似以下的事情:
var list = BusinessRepository.Quer
在下面的代码中,当我将"dl.DamageCount > 5“直接放在查询中时,或者当我将"dl.DamageCount > 5”移到一个方法或函数中,然后从查询中调用它时,有什么区别吗?
似乎当我将它移动到一个方法中时,查询不能正常工作。实际上,无论条件计算如何,函数/方法似乎总是返回true。我使用的是Linq-to-NHibernate。
var q = from dl in session.Linq<DamageList>()
where
dl.DamageCount > 5
在下面的测试中,结果返回0
decimal? t = null;
decimal result = Convert.ToDecimal(t);
但是在我的Linq查询中
var query = from c in dc.DataContext.vw_WebOrders
select new CisStoreData()
{
Discount = Convert.ToDecimal(c.Discount)
};
Convert.ToDecimal()返回null,当它转换为列表时,我的查询会抛出一个异常,因为折扣是不可空的。为什么会发生这种情况?零小数
我正在使用Linq进行查询,并且希望能够使用反射在"select“部分中获得我想要返回的属性列表。我已经尝试了以下几种方法,但都没有用:
string[] paramList = new[]{"AppId","Name"};
var query =
from entity in
_ctx.App
select new {entity.GetType().GetProperties().Where(prop=>paramList.Contains(
我有一个实现接口的类,我需要返回该接口的Queryable<>列表,给定一个特定的Where谓词:
public interface ISomeInterface
{
int ID{get;}
IQueryable<ISomeInterface> GetWhere(Func<ISomeInterface,bool> predicate);
}
public class SomeClass : ISomeInterface
{
public static IQueryable<SomeClass> AVeryBigLis
我是Linq的新手,请指导我一些基本的事情。
在Linq上阅读一些文章。一些作者从Linq查询中填充数据,一些人填充自定义类型对象的列表,一些人在IEnumerable中填充数据,还有一些人在IQuryable中填充数据。我不知道这4个有什么不同,哪一个应该在哪种情况下使用。
我想使用Linq to SQL。我应该使用什么?
我想在我的linq查询中使用OR函数。例如: Sql:
select * from tblusers where userid=1 and status='a' or status='b';
Linq:
var result= _Repository.selectAll().where(x=>x.UserID==1 && x.status=="a" OR x.status=="B");
它确实适用于linq查询。有谁知道吗?
我正在尝试编写一个linq到实体扩展方法,该方法使用Func来选择属性Id,并将其与Id列表进行比较。
类
public class A
{
public int AId { get; set; }
}
public class B
{
public int BId { get; set; }
}
可拓方法
public static IQueryable<T> WithId<T>(this IQueryable<T> entities,
Func<T, int> selector, IList<int> i
如何在C#,.NET 3.5代码中将以下SQL查询转换为LINQ查询形式: 1)
select COUNT(distinct Skill_Name)
from Table1
where Department = 'ABC' and Skill_Name is not null
2)
select distinct location, country from Customer where Customer_Code ='1001';
我需要多次调用相同的LINQ查询,这些查询只是在"where“子句中有不同的元素。我希望将元素传递到一个查询中,而不是一遍又一遍地重复LINQ查询,但我对如何做到这一点犹豫不决。
现在,我的基本LINQ查询如下所示:
return from a in _repository.GetApps()
join set in _repository.GetSettings() on a.id equals set.application_id
join type in _repository.GetSe
我知道有一个简单的lambda查询(not sure if this one called a query)
var person = db.People.Where(a => a.PersonId == id).FirstOrDefault();
我有个问题,因为我对兰博达一无所知。=>的目的是什么?如果将它转换为linq,那么它在linq中的价值是什么?
根据我的基本知识,这可能是转换后的linq查询。
var person = (from p in db.Person where p.PersonId == id select p).FirstOrDefault();
对吗?
我试图完成我认为应该是一个简单的任务,但发现它比我预期的要复杂得多。
基本上,考虑到:
public class MyObject
{
public int A;
public float B;
public string C;
}
List<MyObject> objectList;
我希望能够在字符串中读到以下内容:
"A < 1"
"B > 0.5"
"C = \"text\""
对于其中的每一个,都可以在objectList中获得满足需求的项列表。
我一直在使用LINQ查询
我有一个数据表,我需要将该数据表的内容转换为一个类列表,我使用了Linq作为that.It worked well.But,我被要求将linq查询转换为Lambda表达式,在那里,我在使用Let.I时遇到了一些小麻烦。
正在工作的linq查询:
var NewUser = (from dt in dsMappedDataFields.Tables[0].Rows.Cast<DataRow>()
let tempDetails = dt.Field<string>("Name") == "Rojer" ?
目前,我有一个linq查询,其中包含一个方法。我得到了错误LINQ to Entities does not recognize the method。因此,我发现可以将该方法转换为表达式,但我想知道是否有一种简单明了的方法可以将表达式添加到我的linq查询中。
原始方法
public bool IsAvailable()
{
return Eligibility.ProgramType == InteractionProgramTypes.Available;
}
变到
public System.Linq.Expressions.Expression<Func<Inte
我有以下linq查询:
Dim q = From definition In definitionList _
Where definition.ValueDefName.Contains(criteria) _
Select definition.ValueDefName, definition.ValueDefDesc, definition.DateCreated, _
definition.StrategicInitiative, definition.ValueWikiURL, definitio
我正在尝试设计一个在特定位置过滤的LINQ查询。在我UI下拉列表中,该下拉列表的第一个条目为“All Sites”。因此,当查询看到‘所有站点’作为值时,它不应该执行过滤器。这可能没有多大意义,但这就是我在SQL中使用的方法。
select * from table
where ((location = @loc and @loc is not null) or (@loc is null))
这就是我在LINQ中尝试做的事情。
var dataSetB = db.Data
.Where(j => loc != 'All Sites' && j.Locat
我有一个字符串列表。我需要能够以类似于谷歌查询的方式过滤它们。
例如:NOT water OR (ice AND "fruit juice")
意思是返回没有单词water的字符串,或者返回可以有水的字符串,如果它们有冰和“果汁”。
.NET中有没有一种机制可以允许用户以这种形式(比如在文本框中)编写查询,并给定一个字符串列表或IEnumerable,返回包含该字符串的列表或say。
LINQ可能会做这样的事情吗?
我知道我可以用LINQ做到这一点,我更关心的是将任意字符串解析成可执行的表达式。
我想这样做:
list.Select((x, i) => new { Item = x, Index = i })
但在LINQ查询语法中,类似于:
from x in list
select(x, i) { Item = x, Index = i }
但这并不管用。或者在LINQ查询中有另一种方法来增加en作用域变量?
我有一个产品列表与产品名称,产品价格和类别。我想编写一个linq查询,根据类别对所有产品进行分组。我尝试过以下几种方法:
var p = from s in productlist
group s by s.Category into g
select new { Category = g.Key, Products = g};
在此查询中,它显示了一个包含两列的表,其类别为& product。Category列有两个类别,但在products列下没有数据。我希望所有的产品列表按类别分开。
包含列表的DynamicObject LINQ查询编译得很好:
List<string> list = new List<string>();
var query = (from dynamic d in list where d.FirstName == "John" select d);
使用我们为“常规”LINQ编译器报告错误的自定义类,“表达式树可能不包含动态操作”:
DBclass db =新的DBclass();var查询=(来自db中的动态d,其中d.FirstName == "John“选择d);
我们应该添加什么来处理Dynam
我发现在查询列表时使用Linq是一种有用的体验,并且提供了简洁、可读的代码。
我发现的问题是,当发生错误时,很难调试查询的哪一部分失败。
有没有办法弄清楚这一点?它只会突出显示整个查询并返回错误。
举个例子,如果我有一个列表:
class Person
{
public IList<string> Pets
{
// please, don't do this at home :)
get { throw new InvalidOperationException(); }
}
}
Person person = n
我在for循环中有许多LINQ查询,如下所示:
Department department = db.Departments.Single(d => d.DepartmentID == teams[i].DepartmentID);
问题是LINQ不喜欢与数组元素进行比较,并抛出异常LINQ to Entities无法识别方法'get_Item(Int32)‘。除了为我想要选择的团队列表中的每个属性声明局部变量之外,还有更好的方法来解决这个问题吗?我不想让我的for循环被这样的东西填满。
int departmentID = teams[i].DepartmentID;
stri
我正在尝试创建一个方法,在该方法中,我可以传递一个Linq表达式作为参数,以返回一个新的项列表。
目前,我正在执行此操作():
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
class Collection<T> {
List<T> items = new List<T>();
public Collection<T> Filter(Expression<Func<