Tag: linq to entities

C# – LINQ – GPS纬度和经度的最短距离

我有数据库,在其中我有gps坐标的class级酒店。 我想获得最接近我选择的坐标的位置。 我认为它看起来应该是这样的(我在这里发现了许多示例代码并且像这样): var coord = new GeoCoordinate(latitude, longitude); var nearest = (from h in db.hotels let geo = new GeoCoordinate(h.gps.lat, h.gps.lng) orderby geo.GetDistanceTo(coord) select h).Take(10); 问题是当我尝试搜索某些内容时出现此错误: LINQ to Entities中仅支持无参数构造函数和初始值设定项 我试图谷歌它,我发现将linq分成两个可以帮助我,但我不知道如何。 感谢帮助。

两个条件检查where子句使用linq 2 entites

嗨,我有一个名为带列的产品的表 product_id prodcut_name prodcut_price( values like 1200,2000,3000,100) prodcut_desc category_id(1,2,3,…..) 带列的anorther表类别 category_id(1,2,3…….) category_name(a,b,c….) 和实体名称是dbcontext … 如何获得类别名称为“a”且产品价格> 500且<10000的产品 我正在使用linq来实现… 会不会对此有所帮助……一个…… 非常感谢….

使用传递给方法的lambda表达式是否会降低entity framework查询的速度?

我有一个方法: public static void GetObjects() { using(MyContext context = new MyContext()) { var objects = context.Bars.Where(b => b.Prop1 != null) .Select(b => new MyObject{Prop = b.Prop1, Name = b.Name}) .ToList(); foreach(var object in objects) { // do something with the object } } } 我重构了方法,使其更通用,以便我可以传入一个Func以便我可以指定where语句和Bars表中的哪些属性被分配给MyObject.Prop如下所示: public static void GetObjectsV2(Func whereFunc, Func selectPropFunc) { using(MyContext context […]

LINQ Guid toString()

嗨,这似乎应该工作, from something in collectionofsomestuff select new SelectListItem(){Text = something.Name, Value = something.SomeGuid.ToString(), Selected = false}; 当我尝试这样做时它不起作用给我错误 LINQ to Entities无法识别方法’System.String ToString()’方法,并且此方法无法转换为存储表达式。 有解决方法吗?

Sequence包含多个元素 – SingleOrDefault没有帮助

我有下面的行,但仍然得到一个例外“ 序列包含多个元素 ” Details rd = this.db.Details.SingleOrDefault(x => x.TId == Id && x.TypeId == TypeId); 我希望SingleOrDefault可以避免exception。

如果不支持Contains,如何在LINQ to Entities(entity framework)中执行SQL样式的“IN”语句?

我正在使用LINQ to Entities(而不是LINQ to SQL),而我在创建’IN’样式查询时遇到了麻烦。 这是我目前的询问: var items = db.InventoryItem .Include(“Kind”) .Include(“PropertyValues”) .Include(“PropertyValues.KindProperty”) .Where(itm => valueIds.Contains(itm.ID)).ToList(); 但是,当我这样做时,抛出以下exception: LINQ to Entities无法识别方法’Boolean Contains(Int64)’方法,并且此方法无法转换为商店表达式。 有没有人有解决方法或其他解决方案?

对于传递Expression vs. Func参数感到困惑

我在理解表达式和Funcs如何工作之间的差异时遇到了一些麻烦。 有人从以下方法更改方法签名时出现此问题: public static List ThingList(Func aWhere) 至 public static List ThingList(Expression<Func> aWhere) 这破坏了我的通话代码。 旧的调用代码(有效)看起来像这样: … object y = new object(); Func whereFunc = (p) => p == y; things = ThingManager.ThingList(whereFunc); 新代码(不起作用)如下所示: … object x = new object(); Expression<Func> whereExpr = (p) => p == x; things = ThingManager.ThingList(whereExpr); 在使用表达式的行上的ThingList(…)内部失败: var query = (from […]

无法将类型’System.Collections.Generic.List ‘隐式转换为’System.Linq.IQueryable ‘

我正在尝试在我的域服务(VS 2010 Silverlight业务应用程序)中创建一个查询,该查询返回作为特定值出现的检查读数的结果,我的数据库设置为: Locations a) Inspections b) InspectionItems c) InspectionReadings a) Areas b) Inspections c) InspectionItems d) InspectionReadings 因此,正如您所看到的,区域和位置下的位置有检查读数。 我有一个名为StatusList的POCO: public class StatusList { [Key] [Editable(false)] public Guid ID { get; set; } public string LocationName { get; set; } public DateTime LastInspectionDate { get; set; } public string Status { get; set; } } […]

LINQ To Entities包含区分大小写的搜索

我试图在linq中查询我的结果集到实体; var categoriesList = _catRepo.GetAllCategories(); filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains(“for”)); 但是,我没有得到任何结果,因为数据库中的CategoryName是For(Upper Case) 。 我还检查了sql server collat​​ion,并将其设置为_CI_AS 。 我不知道如何使用contains来过滤不区分大小写的字符串? 如果有人打字,我基本上想要; filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains(“for”)); 要么 filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains(“For”)); 结果应该是一样的

搜索实体的所有字段

我正在尝试在客户数据库上实现“多function框”搜索,其中单个查询应尝试匹配客户的任何属性。 这里有一些示例数据来说明我想要实现的目标: FirstName | LastName | PhoneNumber | ZipCode | … ————————————————– Mary | Jane | 12345 | 98765 | … Jane | Fonda | 54321 | 66666 | … Billy | Kid | 23455 | 12345 | … 如果查询是”Jane” ,我希望返回第1行以及第2行。 对12345的查询将产生行#1和#3。 现在,我的代码看起来非常像这样: IEnumerable searchResult = context.Customer.Where( c => c.FirstName == query || c.LastName == […]