草庐IT

set_trace_func

全部标签

c# - Entity Framework 过滤器 "Expression<Func<T, bool>>"

我正在尝试为EntityFramework列表创建一个过滤方法并更好地理解Expression我有一个这样的测试函数。publicIQueryableFilter(IEnumerablesrc,Expression>pred){returnsrc.AsQueryable().Where(pred);}如果我这样做:context.Table.Filter(e=>e.ID或者这个:context.Table.Filter(e=>e.SubTable.Where(et=>et.ID0&&e.ID一切正常。但是如果我这样做:context.Table.Filter(e=>e.SubTable

c# - 如何公开 Application.Properties.Settings 并保持这种状态

我正在将我的应用程序设置集中到一个位置,我选择使用我的公共(public)库中的设置集合来完成此操作。我已将所有这些设置移动到它们自己的文件中,该文件使用配置源拉入我的app.config中:这让我可以使用VisualStudio的“添加链接”功能,在我的Web和测试应用程序中使用导入的配置文件覆盖默认库设置。现在,我希望能够从我的其他库中访问所有这些很棒的设置值,并且发现我可以通过公开生成的类来简单地做到这一点:文件:Common.Properties.SettingspublicsealedpartialclassSettings:global::System.Configurat

c# - 如何在不传入连接名称的情况下在 Entities ObjectContext 上设置 EF Trace

我正在编写一个可重用的基础存储库类,开发人员将在其中传递一个代表ObjectContext的泛型。基础存储库将使用Activator.CreateInstance创建它的实例.调试时我想使用nuget包CommunityEFProviderWrappers.EFTracingProvider.所以我设置对象上下文的代码如下所示:publicvoidRenewDataContext(){#ifDEBUG//getthedefaultcontainernamevarcontainerName=Activator.CreateInstance().DefaultContainerName;/

c# - 触发器返回一个结果集和/或在 SET NOCOUNT OFF 的情况下运行,而另一个未完成的结果集处于事件状态

我有2台服务器通过低速wan连接,我们正在运行带有合并复制的SQLServer2008。在订阅者处,有时在尝试插入新行时,我会收到此错误:Atriggerreturnedaresultsetand/orwasrunningwithSETNOCOUNTOFFwhileanotheroutstandingresultsetwasactive.我的数据库没有任何触发器;唯一的触发器是由合并复制创建的触发器此外,无论何时发生此错误,它都会自动回滚现有事务我正在使用DataTables和TableAdapters通过事务插入和更新数据库我检查过的内容:数据库日志文件大小小于50Mb检查了僵尸交易

c# - 内部 System.Linq.Set<T> 与公共(public) System.Collections.Generic.HashSet<T>

检查Linq.Enumerable类中的这段代码:staticIEnumerableDistinctIterator(IEnumerablesource,IEqualityComparercomparer){Setset=newSet(comparer);foreach(TSourceelementinsource)if(set.Add(element))yieldreturnelement;}为什么Microsoft的人决定使用Set的这个内部实现而不是常规的HashSet?如果它在任何方面都更好,为什么不向公众公开呢? 最佳答案

c# - EntityFramework 代码首先是 : Set order of fields

我在迁移时使用EntityFramework和“代码优先”方法。我已经成功地从我的模型生成了表格,但是这些列是按字母顺序添加的,而不是我模型中的顺序。我试过这个:[Key,Column(Order=0)]publicintMyFirstKeyProperty{get;set;}[Column(Order=1)]publicintMySecondKeyProperty{get;set;}但这似乎不起作用。如何手动设置数据库中字段的顺序?我正在使用ASP.NETCore和EFCore(SqlServer)v1.1.0。 最佳答案 目前未

c# - 对传递 Expression 与 Func 参数感到困惑

我在理解表达式和函数的工作方式之间的区别时遇到了一些困难。当有人更改方法签名时出现此问题:publicstaticListThingList(FuncaWhere)到publicstaticListThingList(Expression>aWhere)这破坏了我的调用代码。旧的调用代码(有效)如下所示:...objecty=newobject();FuncwhereFunc=(p)=>p==y;things=ThingManager.ThingList(whereFunc);新代码(不起作用)如下所示:...objectx=newobject();Expression>whereEx

c# - Action 和 Func 参数不明确

这段代码怎么可能TaskManager.RunSynchronously(fileMananager.BackupItems,package);导致编译错误Thecallisambiguousbetweenthefollowingmethodsorproperties:'TaskManager.RunSynchronously(System.Action,MyObject)'and'TaskManager.RunSynchronously(System.Func,MyObject)'当Action的签名是publicvoidBackupItems(MyObjectpackage)和“模

c# - 如何将 LambdaExpression 转换为类型化的 Expression<Func<T, T>>

我正在为nHibernate动态构建linq查询。由于依赖关系,我想稍后再转换/检索类型化的表达式,但到目前为止我一直没有成功。这是行不通的(强制转换应该发生在其他地方):varfuncType=typeof(Func).MakeGenericType(entityType,typeof(bool));vartypedExpression=(Func)Expression.Lambda(funcType,itemPredicate,parameter);//Fails这是有效的:vartypedExpression=Expression.Lambda>(itemPredicate,pa

c# - Func<T> 是如何隐式转换为 Expression<Func<T>> 的?

我不明白这里发生了什么:这两行编译:Funcfunc=()=>newobject();Expression>expression=()=>newobject();但这不是:expression=func;LambdaExpression上没有隐式运算符或Expression将委托(delegate)转换为表达式,因此必须发生其他事情才能使分配工作。这是什么? 最佳答案 这不是通常意义上的隐式转换——它是一种编译器技巧。编译器从上下文中检测哪一个是预期的,然后将其编译为委托(delegate)(类中的隐藏方法)或表达式(通过调用Sys