问题标签 [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 投票
3 回答
37763 浏览

c# - 创建数据库集在实体框架中动态?

在 LINQ to SQL 中,我可以使用DataContext.GetTable<T>. 除了在特定的DbContext. 例如:

我想知道如何MySets使用 LINQ to SQL 动态创建/获取对的引用,如下所示:

0 投票
1 回答
404 浏览

sql-server - 关于 C# 中 PK 的一些愚蠢情况:MVC3 无法插入具有传递 PK 的新记录并尝试插入 NULL 作为主键

再会。我有 MSSQL2008 数据库。我为现有表之一(VLAN)制作了一个合适的模型。

VLAN 模型具有以下字段:

然后我尝试插入一个新值

MSSQL 不能将 NULL 值插入 VLAN_ID 字段。但为什么?我传递了一个实值但为空?怎么了?我收到以下消息:

“无法将值 NULL 插入 'VLAN_ID' 列,表 'VMMExt.dbo.VLANs';列不允许空值。INSERT 失败。\r\n语句已终止。” 细绳

如果我删除 [Key] 属性,我会在其他地方收到关于 VLAN 表中缺少关键字段的错误。

如何解决这个问题并强制插入提供的主键值?

0 投票
1 回答
21911 浏览

entity-framework - 与 ID 上的 .SingleOrDefault 相比,DbSet.Find 方法慢得离谱

我有以下代码(数据库是 SQL Server Compact 4.0):

当我对此进行分析时,Find 方法需要 300 多毫秒才能从仅包含 60 条记录的表中检索竞争对手。

当我将代码更改为:

然后在 3 毫秒内找到竞争对手。

竞争者类:

CompetitionSubscriptions我为和OpponentMeetings使用 fluent API定义了多对多关系。

类的 ID 属性Competitor是 Long ,由 Code First 转换为具有数据表中主键的 Identity 列(SQL Server Compact 4.0)

这里发生了什么??

0 投票
1 回答
509 浏览

asp.net-mvc - 使用唯一键查找实体

在我的 asp.net mvc 3 应用程序中,我有一个通用存储库。我使用 DbSet 类的 Find 方法通过其主键查找实体,如下所示:

有什么方法我也可以使用唯一键找到实体吗?我找不到 DbSet 类的源代码。如果可能的话,我想扩展 DbSet 类并为此添加一个新方法。

0 投票
1 回答
1988 浏览

c# - Linq 表达式:使用通用 DbSet 创建最大查询

为了简化为单元测试创​​建假数据,我想要一个可以创建通用实体的函数(我将其用作许多其他类的基础对象)。该实体有一个索引,为了生成一个新索引,我想简单地找到当前最高的数字并加一个。

我将 Index 用于许多其他类,并希望使此功能尽可能通用。我的问题是我不知道如何在我的通用函数中指定要使用的 DbSet GetMaxID

这是我到目前为止得到的:

_repository有一堆不同的 IDbSets 属性,比如

等等

0 投票
1 回答
9598 浏览

entity-framework - 从 DbSet 转换为 IEnumerable 会导致查询执行吗?

我的日志存储库中有以下两种方法。

唯一的区别是一个返回一个 IEnumerable 的 Log,另一个返回一个 DbSet 的 Log。

在我的资产控制器中,我有以下代码

现在的问题是,我在 group by 语句中获得了巨大的性能差异,具体取决于我调用的回购方法之一。

  • 返回 DbSet 的 getAllSet 快如闪电,
  • GetAll 返回 IEnumerable 真的很慢。

任何人都可以解释这一点。我在想 DbSet 到 GetAll 中的 IEnumerable 的转换导致查询执行,因此我在大量内存集上进行分组。由于 GetAllSet 将查询执行推迟到“ToList()”,因此在服务器上按组工作。

它是否正确?有没有另一种方式来解释这一点?

我更希望 GetAll 返回 IEnumerable,因为我更熟悉它并且它更易于测试。

0 投票
1 回答
1843 浏览

asp.net-mvc-3 - C#,MVC3,如何将非泛型 DBSet 与运行时定义的类型一起使用?

我是 MVC 和 EF 的新手。我的应用程序是一个简单的代码优先,有几个 POCO 类和一个 DBContext,如下所示:

问题:我需要在我的数据模型中添加一个实体集,它的类型是在运行时根据用户输入构建的,这意味着我不知道它的数据结构。

我读到非泛型 Dbset 类就是为此而制作的,所以我添加到上下文中:

...并为接受运行时类型并设置新 Dbset 的上下文创建了一个构造函数:

(顺便说一下,该类型是使用 Reflection.Emit 构建的)。

在控制器中,我创建类型(名为 LogRec)并将其传递给新的 DBContext 实例。然后我创建一个 LogRec 实例并尝试将其添加到数据库中:

我从 dbLog.Log.Add(testRec) 得到一个异常:

实体类型 LogRec 不是当前上下文模型的一部分

我究竟做错了什么?有没有更好的方法来做到这一点(最好不要深入实体框架)?

谢谢

0 投票
1 回答
13645 浏览

linq - Entity Framework dbset 最有效的删除方式

我有以下内容,并正在寻找一种更有效的方式来删除与循环遍历记录,然后一次删除每个记录(注意使用 Dbset):

还说如果我们有 1 条记录如下:

删除这条记录的最佳方法是什么?

尝试了以下但给出了错误:

然后我采取了 foreach 只删除一条记录,如上所示,这对于仅 1 条记录并不是最有效的。

0 投票
1 回答
1767 浏览

c# - 从 DbSet 中获取 DbContext

我正在开发一些扩展方法来为 DbSet 添加一些功能。但是,在创建“更新”方法时,我需要 DbSet 的 DbContext 才能修改实体的状态。目前的实现:

有谁知道如何从 DbSet 实例中获取 DbContext ?

0 投票
3 回答
105985 浏览

c# - 使用实体框架 dbset 获取所有行

我想使用以下类型的语法从表中选择所有行:

请原谅我,因为我对 EF 完全陌生。