草庐IT

c# - 是否有用于 Where 和 Select 的 (T, int) 重载的 LINQ 语法?

查询varq=fromelemincollectionwheresomeCondition(elem)selectelem;翻译成varq=collection.Where(elem=>someCondition(elem));是否有可转换为以下内容的LINQ语法?varq=collection.Where((elem,index)=>someCondition(elem,index)); 最佳答案 不,没有LINQ语法。一个简单的解决方法是:varq=fromelemincollection.Select((x,i)=>new{x

c# - 带有 Attach() 的 LINQ To SQL 异常 : Cannot add an entity with a key that is already in use

考虑这个典型的断开连接的场景:使用LINQToSQL从SQLServer加载客户对象用户编辑实体,表示层发回修改后的实体。数据层,使用L2S,必须将更改发送到SQLServer考虑这个LINQToSQL查询,其目的是获取客户实体。CustcustOrig=db.Custs.SingleOrDefault(o=>o.ID==c.ID);//gettheoriginaldb.Custs.Attach(c,custOrig);//wedon'thaveaTimeStamp=Truepropertydb.SubmitChanges();DuplicateKeyException:Cannota

c# - 将 null 分配给可为空的 int 时出错 - "The value ' null' 对属性无效”

我的View模型中有这个属性:[DisplayName("Region")]publicint?RegionId{get;set;}我将我的View模型传递给我的Controller,如果RegionId为null,它会在ModelState.IsValid处失败。如果我向它传递一个整数,它就可以正常工作。错误信息是:Thevalue'null'isnotvalidforRegion在检查ModelState.IsValid之前,我也试过调用它,但我得到了同样的错误:if(viewModel.RegionId==null)viewModel.RegionId=(int?)null;这里

c# - 为什么每个 Char static "Is..."都有一个字符串重载,例如IsWhiteSpace(字符串,Int32)?

http://msdn.microsoft.com/en-us/library/1x308yk8.aspx这允许我这样做:varstr="string";Char.IsWhiteSpace(str,6);而不是:Char.IsWhiteSpace(str[6]);似乎不寻常,所以我看了看倒影:[TargetedPatchingOptOut("PerformancecriticaltoinlineacrossNGenimageboundaries")]publicstaticboolIsWhiteSpace(charc){if(char.IsLatin1(c)){returnchar.I

c# - 为 tinyint 列生成的查询将 CAST 引入到 int

我正在查询一个tinyint列,并且EntityFramework生成一个SELECT查询,该查询为该列引入一个CAST到INT,即使我在WHERE子句中使用的值是byte类型也是如此。查看模型,为我的tinyint列生成的类型是byte。查看代码:bytebyteValue=6;varentityList=fromrinrep.DataContext.FooTablewherer.TinyintColumn==byteValueselectr;查看生成的查询:SELECT[Extent1].[TinyintColumn]AS[TinyintColumn]WHERE@p__linq__

c# - 为什么我不能只使用 EventHandler<int> 而不是从 EventArgs 派生

EventHandler的文档说:ThesecondparameterisatypederivedfromEventArgsandsuppliesanyfieldsorpropertiesneededtoholdtheeventdata.它似乎在整个.Net文档中被普遍推荐。但事实证明我可以执行以下操作,效果很好:publiceventEventHandlerPanned;并调用事件处理程序:intvalue=10;if(Panned!=null){Panned(this,value);}在观察者方面:subject.Panned+=(sender,e)=>{Console.Write

c# - 跳过并取 : An efficient approach to OFFSET LIMIT in EF 4. 1?

以下代码:using(vardb=newEntities()){db.Blogs.First().Posts.Skip(10).Take(5).ToList();}将生成以下SQL:--statement#1SELECTTOP(1)[c].[Id]AS[Id],[c].[Title]AS[Title],[c].[Subtitle]AS[Subtitle],[c].[AllowsComments]AS[AllowsComments],[c].[CreatedAt]AS[CreatedAt]FROM[dbo].[Blogs]AS[c]--statement#2SELECT[Extent1]

c# - int.TryParse() 为 "#.##"返回 false

我有一个接收字符串参数并将它们转换为整数的函数。为了安全转换,使用了int.TryParse()。publicIEnumerableReportView(stringparam1,stringparam2){intstoreId=int.TryParse(param1,outstoreId)?storeId:0;inttitleId=int.TryParse(param2,outtitleId)?titleId:0;IEnumerabledetailView=newReport().GetData(storeId,titleId);returndetailView;}函数调用Repor

c# - int 是枚举的支持类型

根据thispostint是enum的支持类型。当我检查.NET的源代码时System.Enum抽象类继承自System.ValueType抽象类。但是当我检查System.Int32结构它继承自接口(interface)而不是System.ValueType.相反,当我反编译mscorlib.dll并检查Int32结构时,它说该结构的基类型为System.ValueType.但仍然检查反编译的源代码,我看不到任何关于System.ValueType的信息。这让我觉得struct关键字使声明成为auto-Sytem.ValueType,Microsoft也在这个reference中表示

c# - Entity Framework : The context is being used in Code First mode with code that was generated from an EDMX file

我正在使用EF6数据库优先方法开发一个WPF应用程序,我的解决方案中有一个项目,如果我运行我的项目,这个错误总是出现。上下文在代码优先模式下使用,代码是从数据库优先或模型优先开发的EDMX文件生成的。这将无法正常工作。要解决此问题,请不要删除引发此异常的代码行。如果您希望使用数据库优先或模型优先,请确保EntityFramework连接字符串包含在启动项目的app.config或web.config中。如果您要创建自己的DbConnection,请确保它是一个EntityConnection而不是其他类型的DbConnection,并且您将它传递给采用DbConnection的基本Db