问题标签 [dbset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
420 浏览

c# - Conversion of repository pattern class from c# to vb.net

I had the following c# code:

I tried to convert this to vb.net using a conversion tool which rendered the code as follows:

This is throwing an error "Overload resolution failed because no accessible 'Single' accepts this number of arguments

Any idea of how to correct this?

0 投票
1 回答
979 浏览

controller - MVC 5 - 控制器中的多个 DbContext

我正在开发一个 MVC 5 互联网应用程序,我有一个关于DbContextcontroller.

我的DbContext班级有许多DbSet不同模型实体的对象。我的模型实体都没有使用虚拟对象,但是,我的视图模型在每个控制器中都使用虚拟对象。

当一个控制器DbSet在同一个控制器/动作结果中引用不同的对象时,我应该DbContext为每个不同的DbSet引用使用不同的实例吗?当我尝试在仅使用一个实例时访问不同DbSets的视图模型以创建视图模型时,我在 Web 服务类中遇到了以下错误:DbContext

Message = "已经有一个打开的 DataReader 与此命令关联,必须先关闭。"

DbSets当使用相同的DbContext类 访问不同的对象时,在 MVC 控制器中对对象执行 CRUD 操作时会发生这种情况吗?

这是一个例子:

我有一个MapLocationList控制器,在创建/编辑MapLocationList对象时,会访问以下不同的DbSet对象:Asset, MapLocation.

在 MVC 控制器中使用多个DbContext实例时,开销会增加多少?

基本上,我的问题是在访问不同的控制器/动作结果DbContext时是否应该使用不同的实例?DbSets

提前致谢。

0 投票
1 回答
37 浏览

entity-framework - 生成的 DbSet 的 ID 是否总是代表位置?

将元素添加到新创建的 DbSet 时,ID 是否总是从 1 到(元素数量)生成...或者我是否必须添加一些代码以确保发生这种情况...

真正的问题是我想拥有

所以我有

所以这里发生的情况是,每次用户对学生投票时,我都会在 top100allTime 上获得 StudentPointer .. 更新它的“Vote”变量......然后假设“top100allTime”学生总是按投票顺序,我得到邻居它的 ID 是一个数字,比较它的选票,如果需要的话,在顶部列表中切换位置。

仅当 dbSet 上的 ID 始终按从 1 到(元素数)的顺序生成时才有效

这就是为什么我要问

还是有更有效的方法来制作top100List?

0 投票
1 回答
1355 浏览

entity-framework - Entity框架如何实现删除ame SaveChanges()上的父子记录

我有以下两个代表 Dept & Emp 的实体集:-

现在我编写了这个测试操作方法,它将尝试删除一个分配了一个 Emp 的部门,如下所示:-

我认为调用此操作方法时会引发异常,因为Deptwithid=1已经有一个 id=100 的emp。但是发生的事情是EF首先删除了emp,然后是dept。作为上述操作方法的最终结果,删除了 id=1 的部门和 id =100 的 emp .. 请您对此提出建议吗?请记住,如果我尝试仅按以下方式删除 Dept:

我会得到以下异常: -

DELETE 语句与 REFERENCE 约束 \"FK_Emp_ToTable\" 冲突。冲突发生在数据库 \"C:\USERS\...\DOCUMENTS\VISUAL STUDIO 2013\PROJECTS\WEBAPPLICATION19\WEBAPPLICATION19\APP_DATA\DATABASE1.MDF\",表 \"dbo.Emp\",列 'DeptID' 中。 \r\n语句已终止。"}

那么任何人都可以就 EF 如何实现这些场景提出建议吗?

编辑

我检查了我的操作方法的 sql 探查器,我注意到以下 2 个删除 sql 语句:-

所以它先删除了emp,然后删除了dept,那么EF如何确定顺序,你提到它足够聪明,但是什么支配了这种行为?

0 投票
1 回答
150 浏览

data-access-layer - 在 DAL 中引用我的模型

祝大家新年快乐。好的,我正在尝试创建一个 3 层应用程序,并且我的引用按以下顺序 UI -> BLL -> DAL。问题是。我遇到的问题是 Dbset。因为我在 DAL 中没有引用我的模型,所以 dbset 失败。

如果它在我的 BLL 中找不到我的 SomeModel 类,我该如何让它工作?任何帮助将不胜感激。

0 投票
1 回答
254 浏览

c# - DBSet 使用接口动态注册

我想创建一个动态注册 DBset 的代码块。我决定使用一个空接口来捕获实现该接口的类。

这是我的代码块。

但是我的种子方法无法处理我的数据库集。请帮我。

我也试过这个代码块。

0 投票
2 回答
2077 浏览

c# - 数据库集.Add(entity) 分配一个 ID,这会导致异常

对于以下课程:

通常当我们这样做时:

在 B 点,ID 应该保持为 0,并且应该只在 C 点分配一个 ID。但是,我发现对于我的一个类,在 B 点分配了一个 ID,这导致抛出此异常:

当 IDENTITY_INSERT 设置为 OFF 时,无法在表“Cars”中插入标识列的显式值。

我玩过 Fluent API,我 99% 确信我的关系定义正确。我不明白为什么这个 DbSet 试图为这个实体分配一个 ID。

更新

感谢您的帮助,所以这里是我的情况的更详细的说明:

这是我流畅的配置:

编辑 2

好吧,我发现实际上迁移搞砸了。由于某种原因,EF 将第二个外键(Driver2)放在主键列上。这就是为什么 DbSet.Add() 使用实际上是 Driver 2 ID 的值填充 ID 列的原因。

我真的不知道为什么 EF 会如此困惑。而且奇怪的是,我在 SQL Management Studio 中查看时并没有看到这个 FK。看起来 EF 应用了一些实际上不在数据库中的 relashionships。

我重置了整个迁移(删除了迁移文件夹和 _migrationhistory 表,然后在 PowerShell 中执行了 Enable-Migrations 和 Add-Migration Init),并且我已经能够在初始迁移文件中看到有问题的行。

或者当然我已经修改了它们,它似乎已经解决了这个问题。

0 投票
1 回答
560 浏览

c# - 实体框架动态模型不起作用

我开始使用 Entity Framework 6 并且遇到了动态模型的问题。我有以下模型:

像这样添加到上下文中:

但就dbSet.Add(e)部分而言,我收到以下错误:The entity type EF6 is not part of the model for the current context.

有没有人有解决这个问题的方法?

编辑

后来我想用 IronPython 编写一些模型并将它们添加到dbSet.Add.

编辑 2

在此处输入图像描述

0 投票
1 回答
1536 浏览

entity-framework - 是否可以在 Entity Framework 6 中将 ObjectSet 转换为 DbSet?

我正在将 WPF 应用程序从使用 .Net4/EF 4.4 升级到 .Net4.5/EF 6.1。升级后我将使用 DbContext(因为没有用于 ObjectContext 的 POCO 生成器)。

该应用程序使用 Repository/UnitOfWork 模式访问实体框架,在升级之前我可以将 ObjectSet.MergeOption 设置为 OverwriteChanges(在存储库类中),但 DbSet 类没有此功能。但是,我知道我可以通过使用 IObjectContextAdapter 从 DbContext 获取 ObjectSet。(见下面的代码)。但似乎在创建的 ObjectSet 上设置 MergeOption 不会反映回 DbSet。

所以我的问题是:有没有办法将 ObjectSet 转换回 DbSet(保留 MergeOption 设置)?

这是一些存储库类:

0 投票
1 回答
1250 浏览

c# - 对 DbSet 使用 IQueryable

我正在编写一个 MVC 5 互联网应用程序,并且有一个关于使用 IQueryable 的问题。

如果我将一组 DbSet 对象作为 IQueryable 检索,并且我没有引用每个 DbSet 对象中的某些属性,那么在使用 IQueryable 时是否会检索这些属性的值?这是使用 IQueryable 而不是 IEnumerable 的优势吗?

我试图确定从许多 DbSet 对象中检索值的最有效方法,其中我没有引用每个 DbSet 对象中的每个属性。

提前致谢。

编辑

在这种情况下怎么办:

如果我有如下模型:

我检索上述对象的 DbSet 如下:

我遍历上面的 IQueryable,检索name属性,是否曾经从数据库中检索过Id和值?value

编辑2

在这种情况下怎么办:

如果我将一些 TestModel 作为 IQueryable 检索,然后遍历它们,然后调用 IQueryable 具有相同名称的完全相同的代码,是否对数据库进行了两个事务?