草庐IT

key-value-coding

全部标签

c# - EF Code First - 在 nvarchar 上全局设置 varchar 映射

我有一个应该很简单的问题,但我自己却找不到答案。我正在使用EF4CTP-5CodeFirst模型和手动生成的POCO。它将生成的SQL中的字符串比较处理为WHEREN'Value'=Object.Property我知道我可以使用以下方法覆盖此功能:[Column(TypeName="varchar")]publicstringProperty{get;set;}它修复了单次出现的问题并正确生成SQL为:WHERE'Value'=Object.Property但是,我正在处理一个非常大的域模型,遍历每个字符串字段并设置TypeName="varchar"将非常乏味。我想指定EF应该全面地

c# - Entity Framework : Setting a Foreign Key Property

我们有一个大致如下所示的表格:CREATETABLELockers{UserIDintNOTNULLPRIMARYKEY(foreignkey),LockerStyleIDint(foreignkey),NameplateIDint(foreignkey)}所有键都与其他表相关,但由于应用程序的分布方式,我们更容易将ID作为参数传递。所以我们想这样做:Lockerl=newLocker{UserID=userID,LockerStyleID=lockerStyleID,NameplateID=nameplateID};entities.AddLocker(l);我们可以在LINQ-to

c# - "Value Does not fall in the expected range"ClickOnce部署

我已经使用了几个月的ClickOnce应用程序,但最近开始在部署最新版本时出现错误。在这个最新版本中,我添加了对我以前从未使用过的DLL的引用(FTD2XX_NET.dll如果相关),并怀疑这与问题有关,但我不知道如何解决它。正在部署的实际项目引用了另一个库项目,它引用了DLL(它引用了其他DLL,但已经工作了几个月而且它们没有改变)。正在关注thesethreads我尝试删除我的“本地设置/应用程序”文件夹并多次重启,以及重新创建项目并部署到不同的位置。该错误存在于多台机器上,所以我不怀疑它是用户配置文件损坏。这是我得到的完整错误:PLATFORMVERSIONINFOWindows

c# - Dictionary<Key, Value> 上 .NET 二进制序列化的奇怪行为

我在.NET的二进制序列化中遇到了一个奇怪的行为,至少符合我的预期。在OnDeserialization回调之后,加载的Dictionary的所有项目都被添加到它们的父级。相比之下,List则采用另一种方式。这在现实世界的存储库代码中可能真的很烦人,例如,当您需要向字典项添加一些委托(delegate)时。请检查示例代码并观察断言。这是正常行为吗?[Serializable]publicclassData:IDeserializationCallback{publicListList{get;set;}publicDictionaryDictionary{get;set;}public

c# - 如何为 Entity Framework Code First 迁移设置隔离级别

如果您针对为SQLServer复制发布的表运行EntityFramework迁移(自动或显式),您会收到以下错误:YoucanonlyspecifytheREADPASTlockintheREADCOMMITTEDorREPEATABLEREADisolationlevels之前有过关于此的问题(here),但它们完全未能解决根本原因:EntityFramework迁移在Serializable隔离级别运行(如SQLServer探查器中清楚显示的那样)。这是结构更改事务的安全选择,但它与已发布的sqlserver表不兼容。与dbContext.SaveChanges()事务中使用的默认

c# - Entity Framework 6 Code First 自定义函数

我正在尝试类似的东西:Howtousescalar-valuedfunctionwithlinqtoentity?但是我没有使用EDMX,而是先使用DbContext和代码。我遇到过这个:https://codefirstfunctions.codeplex.com/但是用法不合适。我想要实现的是能够做到这一点:varlocations=context.Locations.Where(e=>Functions.LatLongDistanceCalc(e.Lat,e.Long,lat,long)>=10)它将调用SQLServer上的标量函数(LatLongDistanceCalc)。有

c# - 无法识别 Visual Studio Code Entity Framework 核心添加迁移

我使用yoman通过VisualStudio代码编辑器生成了一个ASP.NetCoreWebAPI应用程序。作为引用,我遵循了本教程here.API工作正常。但是,我正在尝试将EntityFrameworkCoreMigrations与SQLServer一起使用。当我在VisualStudioCode终端中键入以下内容时:Add-MigrationMyDbInitialMigration我收到以下消息:'Add-Migration'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.我安装了Mi

c# - 如何将字符转换为等效的 System.Windows.Input.Key 枚举值?

我想写一个这样的函数,publicSystem.Windows.Input.KeyResolveKey(charcharToResolve){//Codegoeshere,thatresolvesthecharToResolve//intotheKeyenumeratedvalue//(Forexamplewith'.'asthecharacterforKey.OemPeriod)}我知道我可以写一个巨大的Switch-case来匹配角色,但还有其他方法吗?问题是Key枚举的字符串可能与字符不匹配,因此Enum.IsDefined将不起作用有什么想法吗?更新:这是在Windows环境下

c# - Code-First 应用程序中的 XML 列

我正在尝试在CodeFirst中创建一个XML列。我很清楚EntityFramework并不完全支持XML列,而是将它们作为字符串读取。没关系。不过,我仍然希望列类型为XML。这是我的类(class):classContent{publicintContentId{get;set;}[Column(TypeName="xml")]publicstringXmlString{get;set;}[NotMapped]publicXElementXml{get{...}set{...}}}问题是,CodeFirst迁移完全忽略了Column属性并将该字段创建为nvarchar(max)。我尝

c# - GUID 是(临时)加密的好 key 吗?

我正在生成加密key以使用Rijndael(AES)encryptionalgoritm加密一些敏感数据.我正在使用guid作为key生成器。这些key是否足够“强大”?注意:只敏感20分钟。 最佳答案 没有。可以预测GUIDkey,至少是那些由.NET/WinAPI生成的key。还要记住,GUID甚至没有真正的128位随机性,因为版本号是固定的。这首先会为您提供一个非常弱的key。更糟糕的是,GUID算法的多个版本都存在可预测性问题。关键是GUID不是随机创建的,而是遵循一定的规则,使GUID几乎不可能发生冲突。正如评论中所讨论的