Tag: linq to entities

在Linq to Entities和Linq to Objects之间共享表达式

我试图在Linq to Entities调用和其他一些代码之间“共享”一组条件,以减少两个调用之间条件的可能不匹配。 我开始宣布我的条件: private Func _submissionDateExpiredCondition = (submissionDate, status) => submissionDate < DateTime.Now && status == Status.OK; private Func _submissionDateWithinOneWeekCondition = (submissionDate, status) => DateTime.Now < DbFunctions.AddDays(submissionDate, -7) && status == Status.Pending; private Func _bidValidityEndPeriodWithinThirtyDaysCondition = (bidValidityEndPeriod, status) => bidValidityEndPeriod.HasValue && DateTime.Now < DbFunctions.AddDays(bidValidityEndPeriod.Value, -30) && (status == Status.OK); 然后我想在我的where子句中使用这些条件,在Linq to Entities中调用和作为if语句中的函数(或者可能是Linq to Objects查询的where调用): […]

删除对象及其相关实体

有谁知道如何删除对象及其所有相关实体。 例如,我有表,Products,Category,ProductCategory和productDetails,productCategory正在连接Product和Category的表。 我从http://msdn.microsoft.com/en-us/library/bb738580.aspx上读到 删除父对象还会删除受约束关系中的所有子对象。 此结果与在关系的关联上启用CascadeDelete属性相同。 我正在使用此代码: Product productObj = this.ObjectContext.Product.Where(p => p.ProductID.Equals(productID)).First(); if (!productObj.ProductCategory.IsLoaded) productObj.ProductCategory.Load(); if (!productObj.ProductDetails.IsLoaded) productObj.ProductDetails.Load(); //my own methods. base.Delete(productObj); base.SaveAllObjectChanges(); 但我在ObjectContext.SaveChanges();上收到错误ObjectContext.SaveChanges(); 也就是说, 正在从AssociationSet ‘添加或删除关系。 使用基数约束时,还必须添加或删除相应的“ProductCategory”。

错误 – SqlDateTime溢出。 必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间

我有一个为2008年写的应用程序。 我们正在使用linq实体。 我们现在必须将数据库切换到2005.我在linq SELECT查询中收到以下错误: 错误 – SqlDateTime溢出。 必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。 违规行是: DateOfBirth = ((s.Date_Of_Birth == null) || (s.Date_Of_Birth <= lowdate)) ? DateTime.MinValue : s.Date_Of_Birth.Value, DateOfBirth是DateTime类型,是我们自己的业务对象(非实体)中的属性。 任何人都知道如何修改此行以使此查询运行?

Linq Entity Framework通用过滤方法

我有一些方法对我的实体的数据执行标准过滤(使用Entity Framework v4)。 示例#1: protected IQueryable GetActiveProducts( ObjectSet products ) { var allowedStates = new string[] { “Active” , “Pending” }; return ( from product in products where allowedStates.Contains( product.State ) && product.Hidden == “No” select product ); } 示例#2: protected IQueryable GetActiveProducts( ObjectSet customers ) { var allowedStates = new string[] { “Active” , […]

LINQ to Entities无法识别方法’Int32

public ActionResult ReadXMLDevices(int groupID) { var query = from k in XMLEntities.unassigneditems where k.DevOrAcc == true && k.Group == groupID select k; var view_query = from i in query select new GetFreeDevices { MArticleNumber = i.ArticleNumber, MFirmware = i.Firmware, MGroup = i.Group, MName = i.Name, MSoftware = i.SoftwareVersion, SA = GetNumberOfDevices(i.ArticleNumber,2), STH = GetNumberOfDevices(i.ArticleNumber,3), SASTH […]

该类型出现在单个LINQ to Entities查询中的两个结构不兼容的初始化中

我正在尝试构建像条件查询之类的东西来从底层数据库中获取所需的数据。 目前我有以下查询(工作正常) var eventData = dbContext.Event.Select(t => new { Address = true ? new AnonymousEventGetAddress { AddressLine1 = t.Address.AddressLine1, CityName = t.Address.AddressCityName } : new AnonymousEventGetAddress(), }); 如果我改成它 var includeAddress = true; // this will normally be passed as param var eventData = dbContext.Event.Select(t => new { Address = includeAddress ? new AnonymousEventGetAddress { AddressLine1 […]

为什么LINQ-to-Entites会识别我的自定义方法?

这有效: Entities.WorkOrderSet.Where(MyCustomMethod); 这不是: Entities.WorkOrderSet.Where(o => MyCustomMethod(o)); ( [编辑]即使没有new ,它也不起作用) 我理解为什么第二个不起作用 – 但为什么世界上第一个工作!? 我不应该在运行时获得“LINQ-to-Entities无法识别方法…” ,就像第二个一样? 作为参考,这是MyCustomMethod public bool MyCustomMethod(WorkOrder workOrder) { return !workOrder.WorkOrderNum.StartsWith(“A”, StringComparison.CurrentCultureIgnoreCase); } 使用EF1,而不是EF4

将Linq查询结果映射到DTO类

我想使用EF从数据库中获取记录并将值分配给DTO类。请考虑以下表格以获取Linq查询。 表A,表B,表C. 对于每个TableA记录,TableB中有多个记录。 对于每个TableB记录,TableC中有多个记录。 现在我的DTO看起来像这样 public class TableA_DTO { public int tableA_rowid { get; set; } //remaining tableA field definitions public List TableB_records { get; set; } } public class TableB_DTO { public int tableB_rowid { get; set; } //remaining tableB field definitions public List TableC_records { get; set; } } public class TableC_DTO { […]

从EF选择返回元组

如何使用EF4在Select中检索元组? var productCount = (from product in context.products select new Tuple(product, products.Orders.Count)); 要么 var productCount = (from product in context.products select Tuple.Create(product, products.Orders.Count)); entity framework说第一种情况不能使用空构造函数,而第二种情况则不能识别Tuple.Create方法。

entity framework中的联盟

我有两张桌子:车辆和工人。 Vehicle(Id, Number) Workers(Id, Name, ContractorVehicleNumber) 我想写lambda查询来返回所有车辆和承包商车辆。 像sql中的东西: SELECT Id, Number FROM Vehicle UNION SELECT NULL, ContractorVehicleNumber FROM Workers 这就是我所做的: public IQueryable Get(bool includeContractorVehicles) { IQueryable query = GetQuery(); if (includeContractorVehicles == true) { WorkerRepository rep = new WorkerRepository(); IQueryable contractorsVehicles = rep.GetWirkers(). Select(x => new Vehicle() { VehicleNumber = x.ContractorVehicleNumber }); query = query.Union(contractorsVehicles); […]