草庐IT

table_type

全部标签

c# - IList<Type> 到 IList<BaseType>

我有几个类:classVehicle{}classCar:Vehicle{}我有一个派生类的列表:IListcars;我想将列表转换为其基类,并尝试过:IListbaseList=carsasIList;但我总是得到null.还有carsisIListevaluatestobefalse.当然,如果我执行以下操作,我可以将项目添加到列表中:Listtest=newList();foreach(Carcarincars){test.Add(car);}我得到了我的list,但我知道必须有更好的方法。有什么想法吗? 最佳答案 使用IEn

c# - Entity Framework 数据库优先 - Table per hierarchy (TPH) 递归关系实现

我正在尝试使用EntityFramework5和数据库优先方法在其中一种具体类型上实现TPH递归关系。我有这样的概念模型和表结构:另外,我的数据库表中有这样的递归关系。ALTERTABLE[dbo].[BaseType]WITHCHECKADDCONSTRAINT[FK_BaseType_DerivedType]FOREIGNKEY([Derived1RecursiveId])REFERENCES[dbo].[BaseType]([Id])当我用这个关系更新模型时,我得到这样的图表:我的问题是:我如何在数据库中实现递归关系,以便在从数据库更新模型(刷新)时,在DerivedType1上

c# - "Predefined type ' System.* ' is not defined or imported"错误,visual studio 代码,omnisharp

我在几个.net核心应用程序中遇到上述错误的问题。我正在使用vscode版本1.18.0,但错误已经开始出现在以前的版本中。错误出现在每个.cs文件中的每种数据类型(如字符串、整数、void等)以及类导入。所有项目仍然可以正常编译和运行。同样在另一个工作站上,我没有在同一个项目中遇到问题,所以它似乎是本地omnisharp/vscode或windows?问题。有没有人遇到过类似的问题并设法修复它或对我可以尝试的方法有任何建议?我已经重新安装了vscode和omnisharp,但我仍然遇到问题。示例错误:未定义或导入预定义类型“System.Object”[GG]

c# - 如何保证 Array 中 "reference type"项目的更新对其他线程可见?

privateInstrumentInfo[]instrumentInfos=newInstrumentInfo[Constants.MAX_INSTRUMENTS_NUMBER_IN_SYSTEM];publicvoidSetInstrumentInfo(Instrumentinstrument,InstrumentInfoinfo){if(instrument==null||info==null){return;}instrumentInfos[instrument.Id]=info;//needtomakeitvisibletootherthreads!}publicInstru

c# - Entity Framework 4 Table Per Hierarchy - 如何定义子项的导航属性?

我目前有一个EntityFramework4.0模型和TablePerType(TPT),但存在一些性能问题(很多LOJ/CASE语句),以及两个特定域区域之间的问题映射(许多-对多)。我决定试用TPH。我有一个名为“Location”的实体,它是抽象的,也是所有其他实体的基础。然后我有"Country","City","State","Street",等等,它们都来自Location。“LocationType”是鉴别器。那部分工作正常,但我在尝试为派生类型定义导航属性时遇到问题。例如,“State”有一个“Country”,所以我应该可以这样做:varstate=_ctx.Loca

c# - Code First 迁移种子错误 : The binary operator Equal is not defined for the types 'System.Nullable` 1[System. Int32 ]' and ' System.Int32'

在我的数据库中播种时,我的更新标识符出现以下问题:context.ClientPromos.AddOrUpdate(cp=>new{cp.ClientID,cp.Recommendation_ID,cp.PromoCode_ID},newClientPromo{ClientID=0,Recommendation_ID=Rec30Off.RecommendationID,PromoCode_ID=pc30PerOffProd.PromoCodeID},newClientPromo{ClientID=0,Recommendation_ID=RecKnow.RecommendationID,

c# - Mono.Cecil type.IsAssignableFrom(derivedType) 等效项

我正在使用Mono.Cecil在Assembly中查找派生自给定的类型。通常可以使用IsAssignableFrom()方法来完成,但我无法确定它在Cecil中是等效的。有没有这样的方法或其他方法来检查它?谢谢迈克 最佳答案 继承检查和“赋值兼容性”检查实际上是不同的东西。您要检查继承还是“分配兼容性”?赋值兼容性包括很多东西,包括有符号/无符号转换、枚举到基类型的转换、char至short转换、通用方差转换、从接口(interface)到object的转换,从数组到IList和IList以及它们的基本接口(interface)、数

c# - Linq 和相等运算符 : Expression of type 'System.Int32' cannot be used for parameter of type 'System.Object'

我试图重写C#中的相等(==)运算符来处理任何类型与自定义类型的比较(自定义类型实际上是null周围的包装器/框)。所以我有这个:internalsealedclassNothing{publicoverrideboolEquals(objectobj){if(obj==null||objisNothing)returntrue;elsereturnfalse;}publicstaticbooloperator==(objectx,Nothingy){if((x==null||xisNothing)&&(y==null||yisNothing))returntrue;returnfal

c# - EF6 : Code First Complex Type

我无法让EntityFramework将具有值对象(复杂类型)字段的域实体类展平到一个表中。如果我告诉我的模型构建器忽略我的值对象/复杂类型,一切正常,但这会导致我的表中丢失值对象的所有属性。一旦删除忽略语句,我就会得到“在多个位置创建跨实体共享的值”。如果我查看生成的CESQL文件,我会看到一个额外的表,该表以我的域类命名并附加了1,并且仅包含值对象参数。一些代码:我的领域类:publicUser{privateUser(){}publiclongId{get;privateset;}//dontask,inheritedlegacydatabasepublicstringUserI

c# - Protobuf-Net 错误消息 : No Serializer defined for type: System. 类型

我在尝试序列化List>时收到以下错误消息:没有为类型定义序列化器:System.Type我都试过了,只是序列化上述集合或序列化一个类,该类具有定义为protoMember的相同集合。两者都会导致相同的错误消息。这是不受支持的类型吗?我认为它是受支持的,但我忽略了其他一些东西,但也许我不正确?感谢任何可能有助于解决此问题的指示... 最佳答案 编辑:r580中包含对Type序列化的支持protobuf-net旨在序列化您的数据,而不是您的实现;Type是一个实现细节。严格来说,添加起来并不难(一些特定于实现的细节实际上已经通过程序集