草庐IT

c# - LINQ to Entities 无法识别方法 'Int32 Parse(System.String)' 方法,并且无法将此方法翻译成存储表达式

我正在使用EntityFramework,我有一行代码将var转换回数据库的iint。varrecord=context.enrollments.SingleOrDefault(row=>row.userId==int.Parse(UserID)&&row.classId==int.Parse(ClassID));每当我尝试运行它时,我都会收到rhis错误。“LINQtoEntities无法识别‘Int32Parse(System.String)’方法,并且无法将此方法转换为存储表达式。”我也试过varrecord=context.enrollments.FirstOrDefault(

c# - 为什么 Enumerable.Range 比直接 yield 循环更快?

下面的代码正在检查执行相同解决方案的三种不同方法的性能。publicstaticvoidMain(string[]args){//forloop{Stopwatchsw=Stopwatch.StartNew();intaccumulator=0;for(inti=1;iaccumulator+n);sw.Stop();Console.WriteLine("time={0};result={1}",sw.ElapsedMilliseconds,ret);}//self-madeIEnumerable{Stopwatchsw=Stopwatch.StartNew();varret=GetI

c# - 读写二进制文件的最快方法

我目前正在优化一个应用程序,经常进行的操作之一是读写二进制文件。我需要两种类型的函数:Set(byte[]target,intindex,intvalue);intGet(byte[]source,intindex);按大端和小端顺序处理有符号和无符号的short、int和long需要这些函数。下面是我做的一些例子,但我需要评估一下优缺点:第一种方法是使用Marshal将值写入byte[]的内存,第二种方法是使用普通指针来完成此操作,第三种方法是使用BitConverter和BlockCopy来完成此操作unsafevoidSet(byte[]target,intindex,intva

c# - 为什么我不能写 Nullable<Nullable<int>>?

Nullable的定义是:[SerializableAttribute]publicstructNullablewhereT:struct,new()约束whereT:struct暗示T只能是值类型。所以我很清楚我不能写:Nullablea;//error.makessensetome因为string是引用类型,不是值类型。但是我真的不明白为什么我不能写Nullable>b;//error.butwhy?为什么不允许?毕竟,Nullable是一个值类型,因此,它可以是Nullablle的类型参数.当我在ideone上编译它时,它给出了这个错误(ideone):errorCS0453:T

c# - 在 C# 中列出 ODBC 数据源

我正在寻找一种适当的抽象方法,以使用C#从系统中获取ODBC数据源列表。我已经尝试过“在注册表中查找”技巧,我发现它在英语中效果很好:RegistryKeyreg=(Registry.CurrentUser).OpenSubKey("Software");reg=reg.OpenSubKey("ODBC");reg=reg.OpenSubKey("ODBC.INI");reg=reg.OpenSubKey("ODBCDataSources");andthen,ofcourse,iteratingoverreg.GetValueNames()唯一的问题是,我发现至少在一台西类牙语机器上,

c# - 尝试将非空字符串设置为类型 'System.Int32'

EntityFramework抛出这个异常:The'PasswordIterations'propertyon'BranchIdentity'couldnotbesettoa'System.String'value.Youmustsetthispropertytoanon-nullvalueoftype'System.Int32'.它在这条线上抛出://Validateuniquenessoremailandusernamevaruser=sqlStorage.BranchIdentities.FirstOrDefault(i=>i.Username.ToLower()==viewMo

c# - 函数重载

让我们假设我定义了这三个方法:intF1(int,int);intF1(float,float);FloatF1(int,int);我在这里调用方法F1:Console.writeline(F1(5,6).ToString()));它将调用哪个方法,为什么? 最佳答案 第一个和第三个函数不会在同一个命名空间中编译。这是因为函数签名是根据参数的类型和数量来区分的,这些都是一样的。返回类型不被视为方法签名的一部分。如果namespace中只有第一个和第二个(或第二个和第三个),将调用最合适的那个(传入整数类型的那个,因为您正在传递整数)

c# - Compact Framework 中的两行文本按钮

我想在CompactFramework中创建一个两行文本按钮。我已经使用了这个线程中的每个想法,但没有成功。http://social.msdn.microsoft.com/forums/en-US/winforms/thread/626c21e0-369f-441e-b2f1-b51db633e38b如果我使用\n或\r\n或Environment.NewLine我会得到正方形。我正在使用CompactFramework3.5。关于如何制作两行文本框有什么想法吗? 最佳答案 需要设置按钮允许多行。这可以通过以下P/Invoke代码

c# - 无边框 move 窗口

如何move没有边框的窗口。应用程序上没有空白空间,可用的只有一个网络浏览器和一个菜单条。我希望用户能够通过拖动菜单条来move窗口。我该如何编码?我尝试了一些在网上找到的代码块,但没有一个有效。 最佳答案 This代码项目文章应该可以帮助您完成此任务。我自己用过这个没有问题。这是它的要旨:publicconstintWM_NCLBUTTONDOWN=0xA1;publicconstintHT_CAPTION=0x2;[DllImportAttribute("user32.dll")]publicstaticexternintSen

c# - 将值从字符串转换为 Guid 或 int 的泛型类型

我有一个通用方法,可以将id从字符串(例如,从ASP.NET窗体上的HiddenField的值中检索)转换为目标类型并对其执行某些操作。privatevoidMyMethod(stringrawId,ActiondoSomethingWithId){Tid=(T)Convert.ChangeType(rawId,typeof(T));doSomethingWithId(id);}T将是Guid或Int32,当它是Guid时,上面的代码(在运行时)失败,表示从String到Guid的转换无效。然后我想我可能会尝试检查类型,如果是Guid,则实例化一个新的Guid:varid=defaul