Tag: linq to entities

在LINQ to Entities查询中不能使用ToString()

所以我有以下代码: string searchQuery = collection[“query”]; var srmas = ( from SRMAs in db.SRMAs join SRMAStatus in db.SRMAStatus on SRMAs.Id equals SRMAStatus.Id join PurchaseOrders in db.PurchaseOrders on SRMAs.PONumber equals PurchaseOrders.PONumber join Suppliers in db.Suppliers on PurchaseOrders.SupplierID equals Suppliers.SupplierID join SRMADetails in db.SRMADetails on SRMAs.Id equals SRMADetails.SRMAId where ids.Contains(SRMAs.Status) && ( searchQuery.Contains(PurchaseOrders.suppliersOrderNumber) || searchQuery.Contains(SRMAs.PONumber.ToString()) ) select new […]

使用LINQ to Entities将多个记录插入表的正确方法

正如我们许多人所做的那样,我设置了一个简单的循环来从数据库添加多个记录。 一个典型的例子是这样的: 方法一: // A list of product prices List prices = new List { 1, 2, 3 }; NorthwindEntities NWEntities = new NorthwindEntities(); foreach (int price in prices) { Product newProduct = new Product(); newProduct.Price = price; NWEntities.Products.AddObject(newProduct); } NWEntities.SaveChanges(); 然而,当我第一次设置循环时,我直观地写道: 方法二: Product newProduct = new Product(); foreach (int price in prices) { newProduct.Price […]

Silverlight – LinqToEntities – 如何返回匿名类型

我不确定我是否正确地走这条路。 我有一个Silverlight应用程序,并使用entity framework的很多。 我有两个实体映射到我的数据库:标题和详细信息。 我想提交一个左外部联接以获取所有标题和详细信息 – 即使标题记录没有详细记录。 这是我想从客户端运行的Linq查询: var query = from head in storeContext.Headers join detail in storeContext.Details on head.HeadId equals details.HeadId into group select new { Desc = head.Description, MyCount = group.Count() }; 由于这是Silverlight,我需要构建我的查询,然后使用来自我的域服务(客户端上下文storeContext.Load()的storeContext.Load()方法将其提交到服务器。 因为这个方法期待一个类型,我不知道如何构造调用以返回匿名类型,因为我在上面? 我做错了吗? 我应该在这样的事情上使用Invoke方法吗? 如果是这样,我如何以及在何处定义我想要返回的类型? 是否有人可以指出我正确的方向我真的应该是它。 谢谢……斯科特

使用对象的所有属性构造动态LINQ查询

嗨,我想构建一个动态的Entity Framework Linq查询与对象的所有属性。 例 我想: – 1)对象测试有5个公共属性。 2)我想遍历此对象并检查每个字符串属性是null还是空。 3)如果没有,我想编写一个查询,该查询将附加where条件以使用该属性值搜索实体。 public void CheckMyEntity(IQueryable _allABCs, MyEntity _MyEntityProperty) { foreach (var prop in _MyEntityProperty.GetType().GetProperties()) { if (!String.IsNullOrEmpty(prop.GetValue(_MyEntityProperty,null).ToString())) { _allABCs = _allABCs.Where(temp => (temp.ABCMyEntitys.All(MyEntity => MyEntity.MyEntity.<> == prop.GetValue(_MyEntityProperty,null)); } } } 任何帮助都会非常有用! 谢谢!

无法将扩展方法转换为存储表达式

我有一个扩展方法如下: public static bool SatisfiesSomeCondition(this Post post, SomeObj someObj) { return post.SomeObjId == someObj.SomeObjId; } 而我正试图像这样使用它: var query = ctx.Posts.Where(p => p.SatisfiesSomeCondition(someObj)).ToList(); 但我得到错误: LINQ to Entities无法识别方法’Boolean SatisfiesSomeCondition(xx.xx.xx.Post,xx.xx.xx.SomeObj)’方法,并且此方法无法转换为商店表达式。 如果我将查询更改为: var query = ctx.Posts.Where(p => p.SomeObjId == someObj.SomeObjId).ToList(); 这与方法相同。 它工作正常,并执行预期的T-SQL。 为什么我的第一个查询不起作用? 这是一个静态方法,不能弄清楚如何创建表达式树? (例如WHEREfilter)。 当然,我不必首先实现查询? (这意味着我不希望通过网络回来的记录,我在这里进行分页/排序,所以这不是一个选项)。 当然,我可以使用有效的方法(例如上面的内容),但方法SatisfiesSomeCondition是一种在域中使用的现有方法,我想重用该function,而不是重复它。 有任何想法吗?

如何使用WPF和Linq-to-entities模型搜索数据库

我准备了一个WPF项目,我希望在那里实现更复杂的搜索。 我通过ADO.NET Entity模型使用LINQ to实体,并计划在WPFToolkit DataGrid中进行显示。 我的搜索窗口应该允许通过几个不同的标准进行搜索。 我的想法是能够在应用程序中写入(例如)名称,姓氏和职业文本框,并接收所选表格中与所有3个搜索参数相对应的所有人员的列表。 我希望能够在输入所有内容时进行搜索,或者即使只输入了一个。 我想另一个选择是将表单绑定到数据库…仍然,我不知道如何搜索这样(我知道如何显示信息,编辑它并插入…但不搜索)。 我虽然应用字符串查询机制,但徒劳无功。 似乎它不起作用。 请分享一些关于如何做到这一点的想法。 任何源或代码片段将不胜感激。 谢谢!

linq to entities不承认该方法

我有一个存储库类,它有一个返回ObjectSet的方法 就像是 public class Repository:ObjectContext { public IObjectSet GetObjectSet() {…} } 当我在查询中使用它时,我得到linq到实体错误(不识别方法……) 我喜欢这样的想法,即拥有一个通用的存储库,每次都不会重新生成(使用T4模板)有没有办法扩展查询提供程序以识别我的方法? 但我确实想在服务器上解决它(换句话说,参与查询生成)。 使用它的示例代码是: static readonly Func getInstitutionByAuthorizedUserName = CompiledQuery.Compile( (ObjectContext ctx, string userName) => (from inst in ctx.GetObjectSet() join auths in ctx.GetObjectSet() on inst.Key equals auths.Institution.Key where auths.Name == userName select inst.Key).SingleOrDefault();

如何在Entity Framework中定义表达式选择嵌套的一对一关系

我正在尝试将包含此Expression的Linq-to-Entity运行到Entity Framework中。 不工作: //2 seperated expressions, 1st expression calling the 2nd expression public Expression<Func> UserToDtoExpr() { var expr = AddressToDtoExpr(); return x => new UserDto() { Id = x.Id, Name = x.Name, Address = expr.Compile()(x.Address) }; } public Expression<Func> AddressToDtoExpr() { return x => New AddressDto() { Id = x.Id, City = x.City, Country= x.Country […]

如何将Linq与实体和WCF数据服务的数据连接起来?

我有4个相关的实体如下: LocalAgencyAgencyOrganizationCustomer 换句话说, LocalAgency有一个相关的Agency等。使用Entity Framework (包含导航属性来细读这些关系)建立数据模型,并设置WCF DataService以向客户提供该数据。 在使用DataService的客户端上,我试图根据客户名称返回本地代理商的查询,但是没有找到支持的方式来制定这个简单的查询。 我尝试的第一种方法是使用Expand ,如下所示: var items = (from i in Context.LocalAgencies.Expand(“Agency”).Expand(“Organization”).Expand(“Customer”) where (String.IsNullOrEmpty(CustomerName) || i.Agency.Organization.Customer.CustomerName.Contains(CustomerName)) select i).Skip(StartIndex).Take(PageSize).ToList(); 如果“join”只有1级深度,则此方法有效,但无法获取导航属性的导航属性。 然后我尝试了如下连接: var items = (from localAgency in Context.LocalAgencies join agency in Context.Agencies on localAgency.CustomerID equals agency.CustomerID join organization in Context.Organizations on localAgency.CustomerID equals organization.CustomerID join customer in Context.Customers on localAgency.CustomerID equals […]

如何从.NET数据结构创建“锯齿状”对象的JSON数组

作为LINQ-to-Entities投影的结果,我最终得到了一个List ,如下所示,我手动创建它: List data = new List(); data.Add(new ChartDataRecord { date = 1370563200000, graph = “g0”, value = 70 }); data.Add(new ChartDataRecord { date = 1370563200000, graph = “g1”, value = 60 }); data.Add(new ChartDataRecord { date = 1370563200000, graph = “g2”, value = 100 }); data.Add(new ChartDataRecord { date = 1370563260000, graph = “g0”, […]