草庐IT

dbContext

全部标签

c# - 如何确定 Dbcontexts 的范围(以防止整个应用程序的单例上下文)

我想知道您如何在EntityFramework中确定Dbcontext的范围,这样您就不会为整个应用程序使用单个Dbcontext。我是EntityFramework的新手并且一直在阅读教程,但他们都使用单个Dbcontext作为示例,因此EF现在对我来说几乎是一个黑盒子。例如我有3个模型:发布用户评论每个模型都相互关联(APost属于User,Comment属于User和Post)。我是否为每个单独创建一个Dbcontext?但这是不正确的,因为它们都是相关的,或者我会为我需要的每个场景创建一个Dbcontext吗?例如,如果我只需要查询Post和Comments而不是用户,那将是一

c# - 如何更新在 DbContext 之外修改的实体?

如果实体在DbContext之外更改(是一个分离的实体),我在更新实体时会遇到一个小问题。如果我附加修改后的实体,它的状态不会被修改。我的代码是这样的:varspecificationToSave=GetSpecificationFromTmpStore(userSessionGuid);using(varcontext=DataContextFactory.GetDataContext()){//thisworksforupdate,ifIchangethevaluesinsidethecontextwhiledebugging//butitbreakswithnewentities

c# - Entity Framework 代码优先 : How to ignore classes

这类似于问题here和here,但这些都是旧的,没有好的答案。假设我有以下类(class):classHairCutStyle{publicintID{get;set;}publicstringName{get;set;}}classCustomerHairCutPreference{publicintID{get;set;}publicCustomerCustomer{get;set;}publicHairCutStyleHairCutStyle{get;set;}}假设我的HairCutStyle数据存储在另一个数据库的一个表中(我从PaulMitchell自己那里得到它)。我想将

c# - 正确使用 Microsoft.AspNet.Identity 2.0

我迷失了使用MVC5模板附带的身份验证方法。我需要将CreateBy用户包含在一个名为client的实体中,所以经过一些研究后我得出了这个结论:型号:[Table("Clients")]publicpartialclassClient{[Key][DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]publicintId{get;set;}publicvirtualintUserCreated_Id{get;set;}[ForeignKey("UserCreated_Id")]publicvirtualApplica

c# - 为什么 WebApi Controller 运行后没有人处理 DbContext?

我知道各种教程以及针对WebApi和EntityFramework(甚至来自Microsoft)的完整示例,它们具有WebApiController,例如这个:publicHttpResponseMessageGetInternet(intid){varcontext=newInternetDbContext();varresult=(frominternetincontext.Internetswhereinternet.Id.Equals(id)selectinternet).FirstOrDefault();if(result!=null)Request.CreateRespon

c# - Entity Framework 7 DbContext 脚手架

我正在尝试使用ASP.NET5和EntityFramework7为现有数据库结构生成DbContext。毫不奇怪,没有很多文档介绍如何轻松地完成此操作。另外,我只想搭建上下文;有大约900个表,我只关心其中的几个,我不需要每个表都有一个模型类。我一直在使用指定的命令here和here运气不佳。所以,我想我有两个问题:生成的上下文文件位于何处?我在命令提示符下运行命令没有失败,但没有其他任何反应。我知道我至少来对地方了,因为我可以添加具有不受支持的属性的旧EF6模型,它给我一个错误,指出它们不受支持。是否可以只生成一个没有对应模型类的上下文? 最佳答案

c# - 从 DbContext 检索 DbSet<T> 的通用方法

我在大型数据库(由200多个表组成)中使用EntityFramework。尝试创建一个返回DbSet的通用方法特定表的T(即类,可以是TableA)。使用实体数据模型(自动)创建的实体类如下所示:publicpartialclasssqlEntities:DbContext{publicvirtualDbSetTableA{get;set;}publicvirtualDbSetTableB{get;set;}publicvirtualDbSetTableC{get;set;}...//othermethods}我的主类是这样的publicclassTableModifier{//Sho

c# - EF DBContext 处理不关闭连接

我使用的是EF6.1.0我有下面的自定义DBContex对象作为DBEntitespublicpartialclassDbEntities:DbContext{publicDbEntities():base("name=DbEntities"){////Configuration.LazyLoadingEnabled=true;////Configuration.ProxyCreationEnabled=false;}////IhaveALLEntitesaddedasbelow////publicvirtualIDbSetCCodes{get;set;}}我对上下文对象有以下操作us

c# - 如何刷新 Entity Framework Core DBContext?

当我的表被另一方更新时,dotnetcore中的数据库上下文仍然返回旧值,我如何强制刷新数据库上下文?我做过研究,但我只发现人们使用Reload方法来强制刷新上下文,这在EF核心中不可用。其他一些解决方案建议在使用后处理上下文,但我收到错误消息说数据库上下文是由依赖注入(inject)创建的,我不应该搞砸它。 最佳答案 哦,这个问题让我纠结了好几天。我将VisualStudio2017与.NetCore2.1结合使用,我的EFCore代码如下所示://1.Loada[User]recordfromourdatabaseintchos

c# - DbSet<>.Local 是否需要特别小心使用?

几天来,我一直在努力从存储库(DbContext)中检索我的实体。我正在尝试将所有实体保存在一个原子操作中。因此,不同的实体一起代表对我有值(value)的东西。如果所有实体都是“有效”的,那么我可以将它们全部保存到数据库中。实体“a”已存储在我的存储库中,需要检索以“验证”实体“b”。这就是问题所在。我的存储库依赖于DbSet与Linq2Sql一起工作的类(Include()导航属性,例如)。但是,DbSet不包含处于“已添加”状态的实体。所以我(据我所知)有两个选择:使用ChangeTracker查看哪些实体可用并根据其EntityState将它们查询到一个集合中.使用DbSet.