在大型EF4.0模型(700多个实体)上,我们在System.Data.Objects.ObjectContext.CreateObjectSet(string)上的性能很差。对此的调用由类似context.Users.FirstOrDefault(u=>u.userId=100)的查询触发。查询总体上表现良好,但在负载下查询表现不佳。我们正在对使用此查询的页面运行20个并发用户负载。此页面的应用程序处于分析模式下,即我们在运行此小型负载测试时使用VisualStudio2010性能分析器。探查器正在使用“采样”模式。该应用程序是使用ASP.NET4.0/ASP.NETMVC3.0构建
我在相对较大且复杂的数据模型上使用EntityFramework5和ObjectContext。我想解决将多个IQueryable.Include(Path)链接到急切加载相关对象时生成的大查询。例如,我正在做这样的事情:varqueryPe=context.Person.Where(p=>p.Id==110).Include(@"AA");queryPe=queryPe.Include(@"BB.CC.DD");queryPe=queryPe.Include(@"EE.FF");它可以通过使用字符串数组并在运行时在foreach循环中链接每个图来使其通用。相反,我想做这样的事情:Pe
我正在尝试使用WCF发送一个对象。使用EF从数据库中检索对象。这是我得到的异常:这只发生在更新场景中。插入效果完美。跟踪错误,我发现问题出在我最近添加的一个集合(称为Travelers)上。以下是当我尝试在运行时观察它的值时发生的情况,在更新之后,在WCF发送更新的实体之前:这是有问题的类的属性声明(我尝试取消对DataMember属性的注释,但没有成功):[DataContract]publicclassTravel:InsuredObject,ISaleEntity,ICloneable{//[DataMember]publicvirtualICollectionTravelers
如何在不同用户的安全上下文中启动线程?当进程正常启动线程时,安全上下文也会被传递,但如何使用不同用户的主体在不同的安全上下文中启动线程? 最佳答案 我相信你可以设置CurrentPrincipal作为线程启动后线程代码的第一个操作,然后才开始执行本应与其他主体一起运行的代码。这应该会处理任何基于.NET角色的检查。如果您还需要模拟来调用操作系统,您可以模拟WindowsIdentity。代码(可能有效也可能无效——没有测试):publicvoidRun(objectprincipalObj){if(principalObj==nul
我有一个文档生成器,目前包含对大约200个项目的查询,但完成后可能会超过500个。我最近注意到一些映射表示延迟加载。这给文档生成器带来了问题,因为它需要根据生成的文档访问所有这些属性。虽然我知道可以为上下文指定的DataLoadOptions,但这将导致我必须明确指定可能加载的每一列。这是1000以北,因为所有数据获取都发生在一个上下文中。有什么方法可以禁用上下文的延迟加载或显式启用预加载以忽略延迟加载属性?也许扩展数据库上下文类并覆盖某些东西? 最佳答案 您需要设置DeferredLoadingEnabled,然后使用一些反射来包
我们正在使用ASP.NETMVCCore和EntityFrameworkCore构建一个应用程序,我们的应用程序中有一大堆类。在以前版本的EntityFramework中,我们将使用此方法为类图生成edmx文件:voidExportMappings(DbContextcontext,stringedmxFile){varsettings=newXmlWriterSettings{Indent=true};using(XmlWriterwriter=XmlWriter.Create(edmxFile,settings)){System.Data.Entity.Infrastructure
我使用的是VisualStudio2017和EntityFramework6,但我一直找不到EDMX文件、实体数据工具、模型浏览器或实体设计器...我是不是疯了?我已经创建了多个新项目,试图找到这些基于UI的工具来处理EntityFramework数据模型,但似乎无处可寻。请帮忙!我相信我在VS2017安装中安装了正确的工具: 最佳答案 对于看到这个的任何人,在我的例子中,答案是我使用的是EntityFramework的代码优先实现,这显然不会让您访问可视化工具。所以Code-FirstEntityFramework中没有EDMX文
我只想将调用发送到SQLServer,而不是等待返回。我有一个从存储过程导入的实体函数,我想在EntityFramework6.0.0-rc1中以这种方式异步调用它。这可能吗?语法是什么?EntityFunction:RecalculateBudgetNumbers(intid) 最佳答案 启动一个新的Task,创建一个新的数据上下文并调用该函数。只是不要等待/等待该任务。让它自己运行直到完成。确保记录错误。不要吞下异常,因为它们可能是您想了解的错误。在ASP.NET设置中,请注意工作进程可以随时回收,因此您的后台工作可能会突然消失
我有一个我的内容模型:classBaseModel{publicvirtualstringContent{get;set;}//...}要仅显示数据,上面的模型就可以了。但我想添加编辑内容的功能。所以我需要向成员content添加一个属性-但这应该只发生在autor按下编辑按钮时,而不是在内容的常规View中。所以我创建了第二个继承自BaseModel的模型,这样我就可以用我的属性覆盖成员:classEditableBaseModel:BaseModel{[UIHint("MyEditor"),AllowHtml]publicoverridestringContent{get;set;
我正在使用DDD原则制作应用程序。在尽可能多地考虑所有事情之后,我决定开始制作我的限界上下文。我还没有设置最终结构,但截至目前,我的应用程序将包含以下限界上下文:员工管理采购归档报告我希望它尽可能地可插拔,这样我就可以分别开发和维护它们。他们可能会公开WCF或WebAPI以与它们交互。我将使用UdiDahansimplementationofasimpleCQRSpattern.我不想一直使用事件源、消息总线等,因为这不是一个高度协作的应用程序(少于1000个用户,他们不太可能编辑相同的小数据集),这会增加了很多不必要的复杂性。所以问题:Theemployeeanddepartment