草庐IT

c# - Visual Studio 2015 缺少 XML 注释/文档

是我还是VisualStudio2015中的System.Linq缺少XML注释?因为我仍然可以在MSDN上找到它.但是在键入时,例如,这段代码:varlist=newList();list.Select(IntelliSense不为System.Linq命名空间中的任何类/方法/成员/扩展提供注释/文档:这是在EnumerableAlt+)F12gotodefinition随机扩展方法时的预览:我想我也没有注意到VisualStudio2013中的文档。但我确实记得他们曾经在那里,也许那是在VisualStudio2012或更早的版本中?编辑:我忘了说我在VisualStudio20

c# - 为 EntitySet<T>、IQueryable<T> 和 IEnumerable<T> 创建可重用谓词

在我的LINQtoSQL设置中,我有各种表,这些表映射到基本上支持相同接口(interface)以支持版本控制的类,即publicinterfaceIValid{int?validTo{get;}intvalidFrom{get;}}LINQtoSQL类派生自此接口(interface),如下所示:publicpartialclassrepresentationRevision:IValid{}现在我想定义一种DRY(不要重复自己)过滤方式EntitySet,IEnumerable和IQueryable以便生成的列表对特定修订版有效。我试过这样做:publicstaticclassEx

c# - 编写扩展方法来帮助查询多对多关系

我正在尝试编写一个扩展方法,以重构我正在编写的linq多对多查询。我正在尝试检索Post(s)的集合,这些集合在作为参数传递给我的方法的集合中标记有任何Tag(s)。以下是相关实体及其一些属性:PostScalarProperties:PostID,PostDateNavigationProperty:PostTagsPostTagScalarProperties:PostTagID,PostID,TagIDNavigationProperties:Post,TagTagScalarProperties:TagIDNavigationProperty:PostTags这是我目前正在使用

c# - 为什么 C# LINQ 表达式必须以 Select 或 Group By 子句结尾,而在 VB.Net 中没有这样的限制

由于我的标题是不言自明的,我知道如何纠正它,但首先为什么会这样?场景我写了一个VB.Net代码DimlistAsList(OfString)=NewList(OfString)//CodetopopulatelistDimwherelinqAsIEnumerable(OfString)=FromsInlistWheres.StartsWith("A")这工作正常,没有错误但在C#中同样的逻辑失败了Listlist=newList();//CodetopopulatelistIEnumerablewherelinq=fromsinlistwheres.StartsWith("A");这给

c# - 使用 DataTable 和 Linq 导出到 Excel 时缺少某些数据

我在单个XL文件中导出三个工作表,但我在第二个DataTable(EducationDetails表)和第三个DataTable中缺少一些用户数据(员工详细信息表)。EducationDetails表是一些用户不存在的,但是用户显示的是EmployeementDetails表。用户电子邮件ID在所有三个数据库表中。DataSeds=newDataSet();DataTabledt=newDataTable("RegistrationDetails");DataTabledt1=newDataTable("EducationDetails");DataTabledt2=newDataTa

c# - 使用 LINQ 将 2D 网格转换为 'diamond' - 这可能吗?

前几天我需要一种算法将二维网格变成菱形(通过有效旋转45度),这样我就可以将对角线序列作为平面可枚举来处理,如下所示:1231456=>42789753869我的算法如下:publicstaticIEnumerable>RotateGrid(IEnumerable>grid){intbound=grid.Count()-1;intupperLimit=0;intlowerLimit=0;Collection>rotated=newCollection>();for(inti=0;irow=newCollection();for(intj=upperLimit,k=lowerLimit;

c# - 具有 linq 数据上下文的存储过程返回值

我正在尝试使用Linq访问存储过程的返回值DECLARE@ValidTokenint=0//Ihavealsotriedusingabitinsteadofaninthere.IFEXISTS(SELECT1FROMTestsWHERETestToken=@Token)select@ValidToken=1return@ValidToken这在通过sqlstudio运行SP时有效。但是我正在尝试使用datacontext类通过linq运行它,它总是返回-1。using(DataEntitiesdataEntities=newDataEntities()){intquery=data.V

c# - 为什么 Guid.ToString 在 Linq 中返回大写字符串?

我遇到了一些奇怪/意外的行为,其中Guid.ToString()在Linq表达式中返回与Guid.ToString()不同的结果在foreach循环中。方法的作用:所讨论的方法只是获取一个对象,然后从原始对象创建一个新的View模型。我工作的公司已决定在View模型中不允许使用Guid,因为我们的一个较旧的JSON序列化程序存在一个错误,导致Guid未正确序列化。问题/意外结果:在调试/测试我的方法时,我发现我创建的Linq表达式返回了一个奇怪的结果。将我的Guid转换为其字符串表示形式时,结果自动大写。一开始我不相信这是Linq表达式,但一旦我将逻辑转换为foreach循环,我就得到

c# - "new"inside concrete type projection 只被调用一次

我有简单的Linq2Sql查询:varresult=fromtinMyContext.MyItemsselectnewMyViewModelClass(){FirstProperty=t,SecondProperty=newSomeLinq2SqlEntity()}问题是newSomeLinq2SqlEntity()似乎只对该序列执行一次,因此查询结果中MyViewModelClass的所有实例共享链接到一个对象。更新:这是我快速检查它的方法:result[0].SecondProperty.MyField=10;使用调试器,我可以检查MyField在所有情况下都设置为10。当我用fo

c# - 如何在不先将整个列表加载到内存的情况下使用 Linq to Sql 实现 SkipWhile?

我需要按发布日期降序排列存储在数据库中的文章,然后使用Id==100获取文章之后的前20条记录。这就是我想用Linq做的事情:IQueryablearticles=db.Articles.OrderByDescending(a=>a.PublicationDate).SkipWhile(a=>a.Id!=100).Take(20);但是,这会生成NotSupportedException,因为LinqtoSql不支持SkipWhile(请参阅here)。一个可能的解决方案是执行查询,然后使用LinqtoObject应用SkipWhile:IEnumerablearticles=db.A