草庐IT

c# - 一个查询的结果不能被枚举多次

我正在使用EntityFramework(ef)并收到以下错误:"Theresultofaquerycannotbeenumeratedmorethanonce.".我有一个包含ef数据上下文的存储库类。然后我有一个包含存储库实例的Controller类(不要与MVCController混淆)。到目前为止一切顺利...我在Controller上有一个搜索方法,它应该返回一个RadComboBoxItemData数组,用于填充TelerikRadComboBox控件。publicRadComboBoxItemData[]Search(intid,stringsearchText){var

c# - 当位掩码(标志)枚举变得太大时该怎么办

我在我的应用程序中有一组非常大的权限,我用Flags枚举表示。它正在快速接近长数据类型的实用上限。而且我被迫想出一个策略来尽快过渡到不同的结构。现在,我可以将这个列表分解成更小的部分,但是,根据我们的应用程序布局,这已经只是我们应用程序总体权限的一个子集。在管理权限时,我们将这种区别广泛用于显示目的,如果可以避免的话,我宁愿此时不必重新访问该代码。还有其他人遇到过这个问题吗?你是怎么熬过来的?一般示例很好,但如果有任何我可以用来完成工作的特定语言技巧,我对特定于c#的示例最感兴趣。可能不是必需的,但这是当前为我正在处理的应用程序部分定义的权限列表。//SubgroupWebAgent[

c# - 当位掩码(标志)枚举变得太大时该怎么办

我在我的应用程序中有一组非常大的权限,我用Flags枚举表示。它正在快速接近长数据类型的实用上限。而且我被迫想出一个策略来尽快过渡到不同的结构。现在,我可以将这个列表分解成更小的部分,但是,根据我们的应用程序布局,这已经只是我们应用程序总体权限的一个子集。在管理权限时,我们将这种区别广泛用于显示目的,如果可以避免的话,我宁愿此时不必重新访问该代码。还有其他人遇到过这个问题吗?你是怎么熬过来的?一般示例很好,但如果有任何我可以用来完成工作的特定语言技巧,我对特定于c#的示例最感兴趣。可能不是必需的,但这是当前为我正在处理的应用程序部分定义的权限列表。//SubgroupWebAgent[

c# - 枚举超过 2^32 的标志

我在我的应用程序中使用枚举标志。Enum可以有大约50+个值,因此值最多可达2^50。我只是想知道,我可以使用Math.Pow(2,variable)来计算这些吗?当我尝试这样做时,我得到一个常量值编译时错误。除了手动计算2的这些次方并将其输入外,还有其他方法吗?这是我正在做的:[Flags]internalenumRiskStates:long{None=0,AL=Convert.ToInt64(Math.Pow(2,0)),AK=2,AZ=4,AR=8,CA=16,CO=32,CT=64,DC=128,DE=256,FL=512,GA=1024,HI=2048,ID=4096,IL

c# - 枚举超过 2^32 的标志

我在我的应用程序中使用枚举标志。Enum可以有大约50+个值,因此值最多可达2^50。我只是想知道,我可以使用Math.Pow(2,variable)来计算这些吗?当我尝试这样做时,我得到一个常量值编译时错误。除了手动计算2的这些次方并将其输入外,还有其他方法吗?这是我正在做的:[Flags]internalenumRiskStates:long{None=0,AL=Convert.ToInt64(Math.Pow(2,0)),AK=2,AZ=4,AR=8,CA=16,CO=32,CT=64,DC=128,DE=256,FL=512,GA=1024,HI=2048,ID=4096,IL

c# - 在 C# 中将 Int 转换为通用枚举

类似于CastinttoenuminC#但我的枚举是一个通用类型参数。处理此问题的最佳方法是什么?例子:privateTConvertEnum(inti)whereT:struct,IConvertible{return(T)i;}生成编译器错误Cannotconverttype'int'to'T'完整代码如下,其中value可以是int,也可以是null。privateint?TryParseInt(stringvalue){vari=0;if(!int.TryParse(value,outi)){returnnull;}returni;}privateT?TryParseEnum(

c# - 在 C# 中将 Int 转换为通用枚举

类似于CastinttoenuminC#但我的枚举是一个通用类型参数。处理此问题的最佳方法是什么?例子:privateTConvertEnum(inti)whereT:struct,IConvertible{return(T)i;}生成编译器错误Cannotconverttype'int'to'T'完整代码如下,其中value可以是int,也可以是null。privateint?TryParseInt(stringvalue){vari=0;if(!int.TryParse(value,outi)){returnnull;}returni;}privateT?TryParseEnum(

c# - 任何人都知道缺少枚举通用约束的良好解决方法?

我想做的是这样的:我有带有组合标记值的枚举。publicstaticclassEnumExtension{publicstaticboolIsSet(thisTinput,TmatchTo)whereT:enum//theconstraintIwantthatdoesn'texistinC#3{return(input&matchTo)!=0;}}那么我可以这样做:MyEnumtester=MyEnum.FlagA|MyEnum.FlagBif(tester.IsSet(MyEnum.FlagA))//actonflaga不幸的是,C#的泛型where约束没有枚举限制,只有类和结构。C

c# - 任何人都知道缺少枚举通用约束的良好解决方法?

我想做的是这样的:我有带有组合标记值的枚举。publicstaticclassEnumExtension{publicstaticboolIsSet(thisTinput,TmatchTo)whereT:enum//theconstraintIwantthatdoesn'texistinC#3{return(input&matchTo)!=0;}}那么我可以这样做:MyEnumtester=MyEnum.FlagA|MyEnum.FlagBif(tester.IsSet(MyEnum.FlagA))//actonflaga不幸的是,C#的泛型where约束没有枚举限制,只有类和结构。C

c# - LINQ to Entities 仅支持使用 IEntity 接口(interface)转换 EDM 原语或枚举类型

我有以下通用扩展方法:publicstaticTGetById(thisIQueryablecollection,Guidid)whereT:IEntity{Expression>predicate=e=>e.Id==id;Tentity;//Allowreportingmoredescriptiveerrormessages.try{entity=collection.SingleOrDefault(predicate);}catch(Exceptionex){thrownewInvalidOperationException(string.Format("Therewasanerr