草庐IT

c# - 使用 Single 作为 Assert 是一种不好的做法吗?

我正在测试一种操作集合的方法。给定一组参数,它应该只包含一个与条件匹配的元素。编辑:该集合可能还有其他几个不符合条件的元素。我正在使用Single测试该行为,效果很好,因为如果根本没有匹配项或多个匹配项,它将通过抛出异常来使测试失败。但是没有实际的断言,它以某种方式违反了arrange、act、assert。所以我想知道这是否是一种不好的做法,是否有更好的方法来做到这一点。以下伪代码演示我的问题:[TestMethod]publicvoidTestMethod(){Listlist=MethodToTest(param1,param2);list.Single(s=>s.Matches

c# - 当数据库中的数据发生更改时,LINQ to SQL 不会更新

我遇到这个问题,在数据库上更新字段(比如表MyTable中的Field3)后,MyTable.Field3(在C#中)仍然返回旧值。我怀疑有一些缓存......?我如何强制它:从数据库读取值?或者更新MyTable类中的值?或者有什么我想念的吗?我是LINQ新手提前谢谢你。 最佳答案 DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues,entity);如果您想刷新整个实体集,最简单的方法可能是只创建一个新的DataContext并重新查询所有

c# - 可以从立即窗口调用扩展方法吗

我问这个问题是因为每当我尝试从VisualStudio2010中的即时窗口调用扩展方法时,我都会收到以下错误:System.Collections.Generic.IEnumerable'doesnotcontainadefinitionfor'ToList'andnoextensionmethod'ToList'acceptingafirstargumentoftype'System.Collections.Generic.IEnumerable'couldbefound(areyoumissingausingdirectiveoranassemblyreference?)如果“立即

c# - Linq 中的 ToList 方法

如果我没记错的话,ToList()方法会迭代所提供集合的每个元素并将它们添加到List的新实例并返回此实例。假设一个示例//usinglinqlist=Students.Where(s=>s.Name=="ABC").ToList();//traditionalwayforeach(varstudentinStudents){if(student.Name=="ABC")list.Add(student);}我认为传统方式更快,因为它只循环一次,而上面的Linq为Where方法迭代两次,然后为ToList()方法迭代两次。我现在正在从事的项目广泛使用了列表,我看到有很多这样的ToLis

c# - Distinct() 是否保留始终取列表中的第一个元素

会int[]nums={2,3,3,4,2,1,6,7,10};vardistinct=nums.Distinct();总是按此顺序返回2、3、4、1、6、7、10? 最佳答案 Enumerable.Distinct的定义行为是它将返回一个无序集合(Documentation)。但是,LinqtoObjects中Distinct的当前实现将保留顺序。但是,对于其他LINQ提供程序并不能保证这一点,不应依赖该行为。 关于c#-Distinct()是否保留始终取列表中的第一个元素,我们在St

c# - LINQ Guid toString()

嗨,这看起来应该可行,fromsomethingincollectionofsomestuffselectnewSelectListItem(){Text=something.Name,Value=something.SomeGuid.ToString(),Selected=false};当我尝试这样做时它不起作用给我错误LINQtoEntitiesdoesnotrecognizethemethod'System.StringToString()'method,andthismethodcannotbetranslatedintoastoreexpression.有解决办法吗?

c# - 如何将多个表达式传递给 EF 的 OrderBy?

我使用的是EF4.2,但我希望这也适用于EF4和4.1。我想传递一个IQueryable和多个Expression>到一个方法并应用该方法OrderBy和ThenBy到IQueryable视情况而定。我找到了thisanswer,并据此编写了如下方法:publicIQueryableApplyOrderBy(IQueryablequery,IEnumerable>>orderBy){if(orderBy==null){returnquery;}IOrderedQueryableoutput=null;foreach(varexpressioninorderBy){if(output==

c# - 如何在 NHibernate Linq 查询中执行不区分大小写的字符串?

如何在NHibernateLinq查询中进行不区分大小写的where?例如//notethisonedoesn'tworkiftheentryindatabasehaslowercaseq=>q.Where(entity=>entity.CaseInsensitiveField==DesiredField.Trim().ToUpper()) 最佳答案 试试这个:q=>q.Where(entity=>entity.CaseInsensitiveField.ToUpper()==DesiredField.Trim().ToUpper()

c# - 从 XElement 读取文本内容

在.NET中,如何从XElement中读取文本内容??例如,来自XElementXElement.Parse("Alice&Bobcat")我想要字符串'Alice&Bob'我尝试了element.Value但返回的是“Alice&Bobcat”:( 最佳答案 XElementt=XElement.Parse("Alice&Bobcat");strings=(t.FirstNodeasXText).Value; 关于c#-从XElement读取文本内容,我们在StackO

c# - 表值函数和 Entity Framework

我正在尝试使用EntityFramework执行TVF,但由于某种原因它无法正常工作。也许外面的任何人都可以帮助我看到问题。以下是代码示例:这就是函数:CREATEFUNCTION[dbo].[udf_profileSearch](@keywordsNVARCHAR(3000))RETURNS@resultsTABLE([Id][int]NULL,[SubCategoryId][int]NULL,[UserId][int]NULL,[SmallDescription][nvarchar](250)NULL,[DetailedDescription][nvarchar](500)NULL