草庐IT

ef-database-first

全部标签

c# - 在 EF Core 中使用 UserManager 进行预加载

目前ApplicationUser类带有一些自定义属性,例如:publicclassApplicationUser:IdentityUser{publicstringName{get;set;}publicListContent{get;set;}}我想获取当前登录用户的相关数据列表(Content属性)。在我的Controller中,如果我输入:Applicationuseruser=await_userManager.GetUserAsync(HttpContext.User);我得到了登录用户,但没有任何相关数据。但是,如果我使用ApplicationDbContext检索当前用

c# - 什么是 EF 重写规则?

当使用DBContext编写LINQ查询语法表达式时,C#编译器执行其通常的魔法convertingthequerysyntaxintodot/extensionsyntaxusingitslistof18transformation/termrewriterules.然后,在执行查询时,EF会应用自己的内部重写规则来生成SQL表达式。就像我上面链接的文章一样,我想要一份EF正在应用的重写规则的列表。我在哪里可以找到它?如果我知道EF重写规则,我就可以预测EF将为给定查询生成什么SQL,而不必等到运行时才能“查看”生成的SQL。例如,考虑以下两个查询:varresult=fromcin

c# - EF6 SQLQuery 非常慢,但数据库非常快

我遇到了一个性能问题,我们已经做了很多分析,但还是卡住了。希望你们中的一个人以前见过这个。我正在调用DbContext.Database.SqlQuery数据库部分需要3毫秒,但完整执行需要9秒。我们使用EFProfiler发现了这一点,我们还在SQLServerManagementStudio中直接运行SQL,它是即时的。我们还使用了glimpse,但无法深入了解该过程。结果类型不是模型中的实体,因此我们确信不涉及跟踪。我们还知道这不是针对上下文执行的第一个查询,因此我们不会为此查询支付EF启动成本。我们尝试了.net分析器,但在运行时遇到了很多问题,因此我们决定只问一下。关于如何深

c# - Entity Framework Linq 查询 : runs instantly in SSMS and 8-10s in EF LINQ 出现问题

我在SQL中得到了以下查询(混淆了变量名),它试图获取值(Ch、Wa、Bu、Hi),从而导致最大数量(cnt)的Pi条目。selecttop1Pi.Ch,Pi.Wa,Pi.Bu,Pi.Hi,COUNT(1)ascntfromProduct,Si,PiwhereProduct.Id=Si.ProductIdandSi.Id=Pi.SiIdandProduct.Code=@CodeParametergroupbyPi.Ch,Pi.Wa,Pi.Bu,Pi.Hiorderbycntdesc它在我们的生产数据库上的SQL管理工作室中立即运行。我已经在C#LINQ和EntityFramework中

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# - 如何在 visual studio 2015 中管理 EF 6 迁移?

我用EntityFramework-Version6.1.2使用VisualStudio2013最新更新启动了一个新的MVC项目。我进行了几次迁移并更新了数据库。在此之后,我在另一台计算机上检查了该项目并使用VisualStudio2015CTP6打开。如果我进入包管理器控制台并尝试运行任何迁移命令,它们将无法识别:add-migrations:Theterm'add-migrations'isnotrecognizedasthenameofacmdlet,function,scriptfile,oroperableprogram.Checkthespellingofthename,o

c# - DbMigrationsConfiguration 如何与 EF 中的 DbMigration 相关

在EntityFramework中,通过使用Enable-Migrations创建一个Migrations文件夹,其中包含从DbMigrationsConfiguration继承的Configuration像这样:internalsealedclassConfiguration:DbMigrationsConfiguration{...}所有使用Add-Migration创建的迁移也都放在Migrations文件夹中。publicpartialclassInit:DbMigration{publicoverridevoidUp(){...}publicoverridevoidDown(

c# - Entity Framework 可以在没有交集对象的情况下处理多对多关系吗?

使用数据库优先模型:假设我们有经典表Student、Course和StudentCourse(后者显然有FKs到学生和类(class))。如果将此模型导入EF,您将获得为每个模型生成的对象。Student和Course类都有一个StudentCourses集合,您需要从中跳转另一个关系才能到达Course或Student。我希望以底层交集表不可见的方式生成代码,即Student具有Courses的集合,而Course有一个Students的集合。我在其他ORM软件(特别是TopLink)中看到过这样做。可以在EF中完成吗? 最佳答案

c# - EF 5,Code First - 创建一个新数据库并以编程方式运行所有迁移

我正在使用EntityFrameworkCodeFirst迁移,并且我有一个场景,我想运行一套集成测试。每次测试运行时,我都想重新创建数据库,并应用所有迁移步骤应该是:删除现有的测试数据库(如果有的话)创建一个新的测试数据库,并应用所有迁移种子数据这是我添加了迁移的现有项目,我使用Enable-Migrations命令创建了一个“InitialCreate”迁移,其中包含将所有表添加到我的数据库的代码。我自定义的IDatabaseInitializer中的代码如下:publicvoidInitializeDatabase(MyContextcontext){//deleteanyexi

c# - 如何在 EF 中配置一对多关系

我有以下模型publicclassPageConfig:Base{//PropertiesEtc..publicICollectionScrollerImages{get;set;}}我的方法是使用联结表{PageConfigID,ImageID}进行绑定(bind)。在我的模型Binder中,我尝试了以下......modelBuilder.Entity().HasMany(x=>x.ScrollerImages).WithMany().Map(x=>{x.ToTable("junc_PageConfigScrollerImages");x.MapLeftKey("PageConfi