Tag: linq

OfType ()与Where()扩展中的检查类型之间的区别

除了可读性之外,以下linq查询之间的区别是什么,以及何时以及为什么我将使用其中一个: IEnumerable items = listOfItems.Where(d => d is T).Cast(); 和 IEnumerable items = listOfItems.OfType(); 更新: Dang,抱歉在尝试简化我的问题时介绍了一些错误

深度优先使用LINQ展平对象层次结构的集合

我有一个对象层次结构(MasterNode – > ChildNodes),其中主节点和子节点属于同一类型,并且只有两个级别(顶级和子级)像这样(’A’是D,E和F的父级,’ B’是G的父母等) A–+ | D | E | F | B–+ | G | C–+ H I 假设我有一个MasterNodes作为父对象(A,B,C)的IEnumerable,给定一个父对象X我可以通过X.children得到它的子节点的IEnumerable 我知道我可以使用SelectMany方法或使用枚举所有叶子(子节点) from parent in Masternodes from child in parent.children select child 这将给我这个序列: [D,E,F,G,H,I] ,但这不是我要求的。 什么是LINQ查询以获取MasterNodes集合中对象的深度优先序列? (返回第一个父母,然后是所有孩子,然后是下一个父母,然后是所有孩子等等) 预期的结果应该是这样的序列: [A,D,E,F,B,G,C,H,I] 更新 : 我要求纯粹的.NET就绪LINQ。 我知道我可以定义自己的方法来做事,但我想要的东西只基于框架提供的方法。

entity framework中多个类似实体类型的通用查询

我有一个场景,我在数据库中有3种类型的产品,所有产品都有自己独立的表(例如Product1 , Product2和Product3 )。 几乎所有产品表都具有相同的模式。 我需要在不同的表中获得不同类型的产品。 我目前有3种获取产品的方法,每种产品类型一种: public List GetProduct1Data() { //…. context.Product1.Where(..).Tolist(); } public List GetProduct2Data() { //…. context.Product2.Where(..).Tolist(); } public List GetProduct3Data() { //…. context.Product3.Where(..).Tolist(); } 在调用产品时,我有一个WebApi方法,它接受产品类型并调用相应的方法: public IHttpActionResult GetProducts(ProductType product) { ///…. // Ii have to call repositories according to product parameter } Entity Framework是否有任何方法可以选择只有一种方法的表?

动态LINQ日期时间比较字符串构建 – Linq To实体

我正在使用Scott Guthrie的动态LINQ库以及Entity Framework和C#。 我必须根据几个因素将where字符串构建到变量中,然后将字符串变量传递给where子句。 出于某种原因,这将有效: ContactList = ContactList.Where(“DateAdded >= @0”, DateTime.Parse(“12/1/2012”)); 但这不起作用 string WhereClause = string.Format(“DateAdded >= {0}”, DateTime.Parse(“12/1/2012”)); ContactList = ContactList.Where(WhereClause); 如上所述,我需要在传递变量的版本中使用它。 谁知道为什么第二个不起作用? 提前致谢!

如何将位图转换为byte ?

基本上我使用listviews插入事件插入图像,尝试从fileupload控件调整图像大小,然后使用LINQ将其保存在SQL数据库中。 我找到了一些代码来创建fileupload控件中内容的新位图,但这是将它存储在服务器上的一个文件中,从这个来源 ,但我需要将位图保存回SQL数据库,我认为我需要转换回byte []格式。 那么如何将位图转换为byte []格式? 如果我以错误的方式解决这个问题,我将不胜感激,你可以纠正我。 这是我的代码: // Find the fileUpload control string filename = uplImage.FileName; // Create a bitmap in memory of the content of the fileUpload control Bitmap originalBMP = new Bitmap(uplImage.FileContent); // Calculate the new image dimensions int origWidth = originalBMP.Width; int origHeight = originalBMP.Height; int sngRatio = origWidth / origHeight; […]

使用Attach方法无法更新数据库

我正在尝试学习LINQ to SQL。 我已经成功实现了insert方法,并且数据被插入到数据库中。 当我尝试更新现有数据时,即使没有exception,它也不会反映在数据库中。 你能否说一下可能出错的地方? 注意:AccountNumber是主键 编辑 以下代码行使其工作。 但是,你能解释为什么我们需要刷新吗? accountRepository.UpdateChangesByAttach(acc1); accountRepository.RefreshEntity(acc1); accountRepository.SubmitChanges(); 注意: DataContext.Refresh method refreshes object state by using data in the database. 刷新是使用KeepCurrentValues选项完成的。 据我所知,它将保留我在实体对象中更新的值。 我(仅)提供需要在数据库中更新的所需信息。 是否需要刷新才能获得剩余的列值? 客户 using (var context = new RepositoryLayer.LibraryManagementClassesDataContext(connectionstring)) { context.Log = Console.Out; RepositoryLayer.Repository selectedRepository = new RepositoryLayer.Repository(); //selectedRepository.Context = context; AccountBusiness accountBl = new AccountBusiness(selectedRepository); //Transaction 1 […]

entity framework核心数量没有最佳性能

我需要通过某个filter获取记录数量。 从理论上讲这条指令: _dbContext.People.Count (w => w.Type == 1); 它应该生成SQL,如: Select count (*) from People Where Type = 1 但是,生成的SQL是: Select Id, Name, Type, DateCreated, DateLastUpdate, Address from People Where Type = 1 生成的查询在具有许多记录的数据库中运行需要更长的时间。 我需要生成第一个查询。 如果我这样做: _dbContext.People.Count (); entity framework生成以下查询: Select count (*) from People ..运行得非常快。 如何生成第二个查询将搜索条件传递给计数?

使用Linq在集合中的指定元素之后查找元素

我有一份有序的人员名单。 我有一个我认识的人存在于该系列中。 如何确定列表中的下一个人?

linq to nhibernate compareto不支持

我有linq到nhibernate查询: var listka = from i in FakturyZakupu.Queryable where String.Compare(i.REJESTRY.REJ_KOD,sbWartoscBetween1.ToString()) >= 0 && String.Compare(i.REJESTRY.REJ_KOD,sbWartoscBetween2.ToString()) <= 0 select i; lista = listka.ToList(); 它编译得非常好,但是如果我使用它,则抛出exception: NotSupportedException int32 CompareTo(System.String,System.String) 我怎样才能在两个值之间使用linq查询字符串值。 就像在SQL中一样:select * from table from a a和b之间的id?

旋转 – 使用LINQ C#转置列表<List >

我有一个List<List> ,它是从远程数据源(即WCF)返回的。 因此,我需要使用LINQ将以下数据修改为用户友好的列表 C#代码是 List<List> PersonInfo = new List<List>() { new List() {“John”, “Peter”, “Watson”}, new List() {“1000”, “1001”, “1002”} } 适当的屏幕截图: 现有的 我需要旋转数据,如下面的屏幕截图: 建议 请帮助我如何使用LINQ C#旋转数据