Tag: linq to entities

比较Entity Framework 5中Any()与Count()的生成查询的性能

在我的项目中,我使用Entity Framework 4.4.0.0,我遇到了以下两难困境。 我必须检查用户是否被激活。 我的查询看起来像: 任何() _context.Users.Any(u => u.Id == userId && u.IsActivated); 生成的sql是: SELECT CASE WHEN ( EXISTS (SELECT 1 AS [C1] FROM [dbo].[Users] AS [Extent1] WHERE ( [Extent1].[Id] = @p__linq__0 ) AND ( [Extent1].[IsActivated] = 1 )) ) THEN cast(1 AS BIT) WHEN ( NOT EXISTS (SELECT 1 AS [C1] FROM [dbo].[Users] AS […]

Linq-to-entities,在一个查询中获取结果+行数

我已经看到了关于这个问题的多个问题,但它们已经2年(或更长)了,所以我想知道是否有任何改变。 基本思想是填充gridview并创建自定义分页。 所以,我也需要结果和行数。 在SQL中,这将是这样的: SELECT COUNT(id), Id, Name… FROM … WHERE … 在一个简单的查询中获取所有内容。 但是,我想保持一致并使用Linq2Entities。 到目前为止,我使用的方法有两个查询(针对sql server),因为它只是起作用。 我想优化它,然后使用单个查询。 我试过这个: var query = from o in _db.Products select o; var prods = from o in query select new { Count = query.Count(), Products = query }; 这产生了一个非常讨厌和长的查询,真正不必要的交叉连接和其他我不需要或不想要的东西。 有没有办法在一个简单的查询中获取分页结果+所有实体的数量? 这里推荐的方法是什么? 更新: 刚试过FutureQueries,我做错了什么,或者它实际上执行了两个查询。 这显示了我的sql profiler: — Query #1 SELECT […]

EF Code First – Linq to Entities Union EqualityComparer

我有两个IEnumerable集合,我想结合。 一个选择与特定类别相关联的新闻对象。 当用户按类别过滤时,我还希望显示已标记有其他类别的新闻文章。 所以我有另一个查询返回标记有特定子类别的新闻对象。 现在我想结合两个集合,删除重复项(作为与主类别相关联的新闻文章,也可以用第二类标记)。 var catNews = model.Category.News.SelectMany(n => n.News); //get news article associated to the category var tagNews = _nr.GetNews(model.Category.relatedCategoryName); //this selects news by tags – which I want as the related category name model.News = catNews.Union(tagNews).OrderByDescending(p => p.Date); //union the two collections 但是,model.News现在包含两篇相同的新闻文章,我不确定为什么联盟应该使用默认的相等比较器? 我在这里做错了吗? 我使用的是EF Code First,我的主键是新闻ID。 我解决这个问题的方法是将一个catNews id列表传递给GetNews函数并排除它们 if (excludeIds != […]

部署使用LINQ to Entities的应用程序

我想使用L2E,因为它对我公司的应用非常方便,我创建了一个演示项目,演示确实在每台机器上运行但是当我说,按下一个按钮,其中包含一些使用该实体的代码我得到了这个错误: specified store provider cannot be found in the configuration, or is not valid. 请注意,我只在没有安装VS2008的机器上得到此错误,在这些机器上(VS2008的机器),该演示效果很好。 任何建议表示赞赏。 我正在使用MySql服务器与Mysql Conector 6.3,并使用ADO.Net权利模型创建模型。 编辑 这是完整的错误跟踪: See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.ArgumentException: The specified store provider cannot be found in the configuration, or […]

使用多对多关系entity framework强制内部联接

我在我的数据库中设置了多对多关系,如下所示: User ——- Id (PK, Identity) First Last …various other fields Skill ——- Id (PK, Identity) Description UserSkill ———– UserId (PK, FK on User.Id) SkillId (PK, FK On Skill.Id) 当我在DbContext上运行此LINQ查询时: from u in Users from s in u.Skills where s.Id == 5 select new { u.Id, s.Description }) 生成的SQL包含所有内部联接,这是我想要的: SELECT [Extent1].[UserId] AS [UserId], [Extent2].[Description] AS […]

LINQ to SQL查询在结果中具有错误的值

我有一个LINQ查询具有不正确的结果,但是当我分析生成的SQL时,SQL结果是正确的。 ApplicationsEntities context = new ApplicationsEntities(); var query = from documentation in context.Documnetations where documentation.Application_Version_ID == app_ver_id orderby documentation.Name select documentation; docs = query.ToList(); 我得到两个重复:“如何安装Office 2003”和“如何安装Office 2003” 下面是配置文件SQL的输出: 从生成的SQL中分配结果会发生什么?

Linq to SQL / Linq to Entities可以生成MERGE语句吗?

寻找一个组合的INSERT / UPDATE / DELETE语句,MERGE正是我所需要的,但我似乎无法找到LINQ / SQL是否支持它(来自http://www.sqlbook.com/SQL-Server/SQL- MERGE-35.aspx ) — Merge order items into OrderItems table MERGE INTO OrderItem As oi USING @UpdatedItems ui ON (oi.OrderID = ui.OrderID AND oi.ProductID = ui.ProductID) WHEN MATCHED THEN UPDATE SET Quantity = ui.Quantity, UnitCost = ui.UnitCost WHEN NOT MATCHED THEN INSERT (OrderID, ProductID, Quantity, UnitCost) VALUES (@OrderID, ui.ProductID, […]

为什么Linq GroupBy在OrderBy之后解雇订单操作?

我有一个带有会话导航属性的Action模型, 考虑以下代码: var x=db.Actions.OrderBy(p => p.Session.Number).ThenBy(p => p.Date);//it’s OK x是一个有序的Action,但是当在x上分组时,group不会在有序的enumerable上手动迭代x(基于Action.Session ): var y=x.GroupBy(p=>p.Session).ToArray() 你有一个组(密钥,组合)的会话,但为什么group.Key 没有基于Session.Number 排序 ? 如何按编号和按日期排序的每个组达到一组会话顺序?

如何仅在Entity Framework 6.1中加载子对象的某些字段?

我正在研究一个有两个类的模型, Product和Transaction 。 public class Product { [DataMember] public Guid ProductId {get; set;} [DataMember] public virtual ICollection Transactions { get; set; } } public class Transaction { [DataMember] public Guid TransactionId {get; set;} [DataMember] public DateTimeOffset Date { get; set; } [DataMember] public String Customer { get; set; } } 如何进行检索产品及其交易日期的查询? 我尝试过类似的东西 var product = […]

使用LINQ拆分字符串

我希望通过我的结果来命令我的字符串行中的匹配计数。 所以这是代码 .ThenByDescending(p => p.Title.ToLower() .Split(‘ ‘) .Count(w => words.Any(w.Contains))); 但它给我带来了错误,并说LINQ无法将Split解析为SQL。 LINQ to Entities无法识别方法’System.String [] Split(Char [])’方法,而且此方法无法转换为商店表达式。 如何通过LINQ实现Split? 例如,对于此数组,它必须以这种方式排序 words = { “a”, “ab” } ab a ggaaag gh //3 matches ba ab ggt //2 matches dd //0 matches