草庐IT

c# - 生成用户友好的字母数字 ID(如业务 ID、SKU)的选项有哪些

要求如下:必须是字母数字,8-10个字符,以便于用户使用。这些将作为唯一键存储在数据库中。我将Guid用作主键,因此最好选择使用GUId生成这些唯一ID。我正在考虑采用Guid并将其转换为8个字符的唯一字符串的base-n转换器。首选简短、轻量级的算法,因为它会被经常调用。 最佳答案 8characters-perfectlyrandom-36^8=2,821,109,907,456combinations10characters-perfectlyrandom-36^10=3,656,158,440,062,976combinat

c# - 如何使用局部变量作为类型?编译器说 "it is a variable but is used like a type"

在运行时,我不知道什么类型的变量v1是。为此,我写了很多ifelse声明:if(v1isShellProperty){v2=(v1asShellProperty).Value;}elseif(v1isShellProperty){v2=(v1asShellProperty).Value;}elseif(v1isShellProperty){v2=(v1asShellProperty).Value;}elseif(v1isShellProperty){v2=(v1asShellProperty).Value;}唯一的区别在于ShellProperty.所以不要用很多ifelse来写这篇文

c# - PropertyInfo 实例上的 SetValue 错误 "Object does not match target type"c#

在以前的项目中的不同地方使用了带有这段代码的Copy方法(处理具有相同命名属性但不派生自公共(public)基类或实现公共(public)接口(interface)的对象)。新的工作地点,新的代码库-现在即使在非常简单的示例中,它也会在SetValue处失败并显示“对象与目标类型不匹配”......并且它在上周工作......publicstaticvoidCopy(objectfromObj,objecttoObj){TypefromObjectType=fromObj.GetType();TypetoObjectType=toObj.GetType();foreach(System

c# - LINQ to Entities Group By 表达式给出 'Anonymous type projection initializer should be simple name or member access expression'

我在这个表达式中遇到了上述错误:varaggregate=fromtinentities.TraceLinesjoinminentities.MethodNames.Where("it.NameLIKE@searchTerm",newObjectParameter("searchTerm",searchTerm))ont.MethodHashequalsm.MethodHashwhere(t.CallTypeId&(int)types)==t.CallTypeId&&t.UserSessionProcessId==m_SessionIdgrouptbym.Nameintodselect

c# - ReferentialConstraint 中的依赖属性映射到存储生成的列。列 : 'ID'

当我尝试添加Venue对象并调用SaveChanges()时,我不明白为什么会出现此错误。模型中与Venue对象的唯一区别是它们与City是1对1..0关系。Citycity=ProcessCityCache(ev,country,db);//Afterthiscall,'city'isalreadypersisted.venue=newVenue{TicketMasterURL=ev.VenueSeoLink,Name=Capitalize(ev.VenueName),City=city};db.Venues.AddObject(venue);db.SaveChanges();//E

c# - 检查 System.Type 是否是给定类的后代的最佳方法

考虑以下代码:publicclassA{}publicclassB:A{}publicclassC:B{}classD{publicstaticboolIsDescendantOf(thisSystem.TypethisType,System.TypethatType){///???}voidMain(){AcValue=newC();C.GetType().IsDescendantOf(cValue.GetType());}}实现IsDescendantOf的最佳方法是什么? 最佳答案 Type.IsSubclassOf()判断当

c# - T4代码生成: access types in current project

使用T4代码生成,是否可以访问当前项目中定义的类型?例如,如果我有一个接口(interface)并且我想将它的实现委托(delegate)给另一个类,即interfaceIDoSomething{publicvoiddo_something();}classDoSomethingImpl:IDoSomething{publicvoiddo_something(){//implementation...}}classSomeClass:IDoSomething{IDoSomethingm_doSomething=newDoSomethingImpl();//forwardcallstoi

c# - 为什么 asp.net Identity 用户 id 是字符串?

我想使用System.Guid类型作为我在asp.netwebapi应用程序中所有表的ID。但我也使用Asp.netIdentity,它使用string类型的id(也用于存储guid)。所以我想知道为什么它默认使用stringid而不是System.Guid?在所有应用程序中使用什么是更好的选择-Guidid或string-guidid?如果使用字符串-生成新ID的最合适和最可靠的方法是什么-在代码中还是在数据库中? 最佳答案 使用ASP.NETCore,您可以通过一种非常简单的方法来指定您想要用于Identity模型的数据类型。第

c# - LINQ 到 SQL : Delete entity (by ID) with one query

我使用LINQToSQL已经有一段时间了,当谈到从数据库中删除实体时,我总是调用表的.DeleteOnSubmit并传入实体。有时我发现自己在写类似这样的东西:db.Users.DeleteOnSubmit(db.Users.Where(c=>c.ID==xyz).Select(c=>c).Single());这当然会导致两个查询。一个获取符合条件的实体,然后另一个删除它。通常我有需要删除的记录的ID,我想知道是否有更直接的方法仅通过ID从表中删除行? 最佳答案 通过附加部分对象并将其删除,无需手动工具SQL即可执行此操作:varm

c# - 在 C# 中实现安全的鸭子类型(duck typing)

看了之后如何Go处理接口(interface)并喜欢它,我开始考虑如何在C#中实现类似的duck-typing,如下所示:varmallard=newMallard();//doesn'timplementIDuckbuthastherightmethodsIDuckduck=DuckTyper.Adapt(mallard);DuckTyper.Adapt方法将使用System.Reflection.Emit动态构建适配器。也许有人已经写过这样的东西。我想这与模拟框架已经做的并没有太大不同。但是,如果Mallard实际上没有正确的IDuck方法,这将在运行时抛出异常。为了在编译时尽早发