问题标签 [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.
c# - 创建数据库集在实体框架中动态?
在 LINQ to SQL 中,我可以使用DataContext.GetTable<T>
. 除了在特定的DbContext
. 例如:
我想知道如何MySets
使用 LINQ to SQL 动态创建/获取对的引用,如下所示:
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 表中缺少关键字段的错误。
如何解决这个问题并强制插入提供的主键值?
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)
这里发生了什么??
asp.net-mvc - 使用唯一键查找实体
在我的 asp.net mvc 3 应用程序中,我有一个通用存储库。我使用 DbSet 类的 Find 方法通过其主键查找实体,如下所示:
有什么方法我也可以使用唯一键找到实体吗?我找不到 DbSet 类的源代码。如果可能的话,我想扩展 DbSet 类并为此添加一个新方法。
c# - Linq 表达式:使用通用 DbSet 创建最大查询
为了简化为单元测试创建假数据,我想要一个可以创建通用实体的函数(我将其用作许多其他类的基础对象)。该实体有一个索引,为了生成一个新索引,我想简单地找到当前最高的数字并加一个。
我将 Index 用于许多其他类,并希望使此功能尽可能通用。我的问题是我不知道如何在我的通用函数中指定要使用的 DbSet GetMaxID
。
这是我到目前为止得到的:
_repository
有一堆不同的 IDbSets 属性,比如
等等
entity-framework - 从 DbSet 转换为 IEnumerable 会导致查询执行吗?
我的日志存储库中有以下两种方法。
唯一的区别是一个返回一个 IEnumerable 的 Log,另一个返回一个 DbSet 的 Log。
在我的资产控制器中,我有以下代码
现在的问题是,我在 group by 语句中获得了巨大的性能差异,具体取决于我调用的回购方法之一。
- 返回 DbSet 的 getAllSet 快如闪电,
- GetAll 返回 IEnumerable 真的很慢。
任何人都可以解释这一点。我在想 DbSet 到 GetAll 中的 IEnumerable 的转换导致查询执行,因此我在大量内存集上进行分组。由于 GetAllSet 将查询执行推迟到“ToList()”,因此在服务器上按组工作。
它是否正确?有没有另一种方式来解释这一点?
我更希望 GetAll 返回 IEnumerable,因为我更熟悉它并且它更易于测试。
asp.net-mvc-3 - C#,MVC3,如何将非泛型 DBSet 与运行时定义的类型一起使用?
我是 MVC 和 EF 的新手。我的应用程序是一个简单的代码优先,有几个 POCO 类和一个 DBContext,如下所示:
问题:我需要在我的数据模型中添加一个实体集,它的类型是在运行时根据用户输入构建的,这意味着我不知道它的数据结构。
我读到非泛型 Dbset 类就是为此而制作的,所以我添加到上下文中:
...并为接受运行时类型并设置新 Dbset 的上下文创建了一个构造函数:
(顺便说一下,该类型是使用 Reflection.Emit 构建的)。
在控制器中,我创建类型(名为 LogRec)并将其传递给新的 DBContext 实例。然后我创建一个 LogRec 实例并尝试将其添加到数据库中:
我从 dbLog.Log.Add(testRec) 得到一个异常:
实体类型 LogRec 不是当前上下文模型的一部分
我究竟做错了什么?有没有更好的方法来做到这一点(最好不要深入实体框架)?
谢谢
linq - Entity Framework dbset 最有效的删除方式
我有以下内容,并正在寻找一种更有效的方式来删除与循环遍历记录,然后一次删除每个记录(注意使用 Dbset):
还说如果我们有 1 条记录如下:
删除这条记录的最佳方法是什么?
尝试了以下但给出了错误:
然后我采取了 foreach 只删除一条记录,如上所示,这对于仅 1 条记录并不是最有效的。
c# - 从 DbSet 中获取 DbContext
我正在开发一些扩展方法来为 DbSet 添加一些功能。但是,在创建“更新”方法时,我需要 DbSet 的 DbContext 才能修改实体的状态。目前的实现:
有谁知道如何从 DbSet 实例中获取 DbContext ?
c# - 使用实体框架 dbset 获取所有行
我想使用以下类型的语法从表中选择所有行:
请原谅我,因为我对 EF 完全陌生。