草庐IT

dbContext

全部标签

c# - 必须使用 dbcontext.Database.SqlQuery 声明标量变量 '@custid'?

我正在尝试使用EF5从bcontext.Database.SqlQuery执行存储过程。它抛出错误必须声明标量变量“@custid”varresults=_MiscContext.Database.SqlQuery("execsp_GetStaff@custid",customerNumber).ToList();如果customerNumber是员工,SP返回1否则返回空行。ALTERPROCEDURE[dbo].[sp_GetStaff]@custidvarchar(12)ASBEGINSETNOCOUNTON;SELECT1AS[C1]FROM[dbo].[Staff]with(

c# - 已设置 EF6 'DbConfigurationClass' 但未发现此类型 - 多个 DbContexts 和 DbConfigurations

我有一个解决方案,其中我们有两个DbContext,我们正在从EF4迁移到EF6。旧的DbContext是代码优先的,我们主要使用较新的生成的db-first,但由于外部依赖性,两者都需要运行。我的类(class)是这样的:namespaceOld.Busted.EF.DAL{[DbConfigurationType(typeof(Old.Busted.EF.DAL.OldConfiguration))]publicclassOldContext:DbContext[...]publicclassOldConfiguration:DbConfiguration[...]}namespa

c# - IDbSet.Add 和 DbEntityEntry.State = EntityState.Added 有什么区别?

在EF4.1+中,这两行代码之间有区别吗?dbContext.SomeEntitySet.Add(entityInstance);dbContext.Entry(entityInstance).State=EntityState.Added;或者他们做同样的事情?我想知道一个是否会以不同于另一个的方式影响子集合/导航属性。 最佳答案 当您使用dbContext.SomeEntitySet.Add(entityInstance);时,此及其所有相关实体/集合的状态设置为已添加,而dbContext.Entry(entityInstan

c# - 为 DbContext 设置架构名称

我知道如何在我的上下文中为一个表设置架构,但是有没有办法为一个上下文中的所有表设置默认架构?即[Schema="Ordering"]publicclassMyContext:DbContext{publicMyContext():base("name=ConnectionString"){}publicDbSetStudents{get;set;}} 最佳答案 您可以在自定义继承的DbContext类的OnModelCreating方法中配置默认​​架构,例如-publicclassMyContext:DbContext{publi

c# - 将 DbContext 注入(inject)服务层

我应该如何将我的MyDbContext注入(inject)到我的数据库服务层MyService中?Startup.cspublicvoidConfigureServices(IServiceCollectionservices){services.AddDbContext(options=>options.UseSqlServer(Configuration["ConnectionStrings:DefaultConnection"]));services.AddMvc();}MyDbContext.cspublicpartialclassMyDbContext:DbContext{p

c# - 先在代码中获取任意实体的主键值

有这样的方法吗?objectGetPrimaryKeyValue(DbEntityEntryentry);或者应该如何实现? 最佳答案 您需要将DbContext转换为IObjectContextAdapter,这样您就可以访问底层的ObjectContext,这让您可以访问一些隐藏的更高级的功能DbContext.在派生DbContext的类中,以下方法将起作用。objectGetPrimaryKeyValue(DbEntityEntryentry){varobjectStateEntry=((IObjectContextAdap

c# - 如何在 EF Core 中实例化 DbContext

我还设置了.net核心项目和数据库上下文。但是由于这个错误,我还不能开始使用dbContext-"thereisnoargumentgiventhatcorrespondstotherequiredformalparameter'options'"Controller:publicIActionResultIndex(){using(vardb=newBlexzWebDb()){}returnView();}数据库上下文代码:publicclassBlexzWebDb:DbContext{publicBlexzWebDb(DbContextOptionsoptions):base(op

c# - Entity Framework 6-使用我的getHashCode()

这需要一定的背景知识-请多多包涵!我们有一个使用EF的n层WPF应用程序-我们通过dbContext将来自数据库的数据加载到POCO类中。dbContext被销毁,然后用户可以编辑数据。我们使用JulieLerman在她的书“ProgrammingEntityFramework:DBContext”中建议的“状态绘画”,以便在将根实体添加到新的dbContext中进行保存时,可以设置是否添加,修改或保留每个子实体,等等。。我们第一次执行此操作(2012年11月!)时遇到的问题是,如果要添加到dbContext的根实体具有同一子实体的多个实例(即,链接到用户的“任务”记录),“状态历史记

c# - 不同 DbContext 和不同模式之间的 Entity Framework 关系

因此,我有两个主要对象,Member和Guild。一个成员(member)可以拥有一个公会,一个公会可以有多个成员(member)。我在单独的DbContext和单独的类库中有Members类。我计划在多个项目中重用这个类库并帮助区分,我将数据库模式设置为“acc”。我已经广泛测试了这个库,可以在acc.Members表中添加、删除和更新成员。公会类是这样的:publicclassGuild{publicGuild(){Members=newList();}publicintID{get;set;}publicintMemberID{get;set;}publicvirtualMemb

c# - 为什么在 Edmx 做同样的工作时使用 EF 5.X DbContext Generator?

我发现这个EF5dbContext很难掌握。在VisualStudio2012中,当我选择项目>添加新项目>ADO.Net实体数据模型然后选择AdventureWorks数据库文件,它会生成一个edmx文件(在要求我将数据库文件复制到本地之后)。就是这样,我现在可以开始运行查询了,例如AdventureWorks_DataEntitiesentities=newAdventureWorks_DataEntitiesvarquery=frompinentities.Productswherep.ListPrice>=0selectp;让我困惑的是,那我为什么要使用Project>AddN