问题标签 [entity-framework-4.1]

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 投票
14 回答
207028 浏览

entity-framework - 如何将参数传递给 DbContext.Database.ExecuteSqlCommand 方法?

假设我有在实体框架中直接执行 sql 命令的有效需求。我无法弄清楚如何在我的 sql 语句中使用参数。以下示例(不是我的真实示例)不起作用。

ExecuteSqlCommand 方法不允许您像在 ADO.Net 中那样传入命名参数,并且此方法的文档没有提供任何有关如何执行参数化查询的示例。

如何正确指定参数?

0 投票
1 回答
308 浏览

c# - 如何在使用 EF 4.1 CodeFirst 创建数据库时运行 SQL?

我想在我的 MVC 应用程序中使用 Elmah 来存储错误消息,并且我想将异常存储在我的应用程序的数据库中。为此,我需要运行包含的 DDL 来创建 Elmah 表和存储过程。

但是,由于每当我的模型更改(通过 EF CodeFirst)时都会重新创建我的开发数据库,​​因此我需要在重新创建数据库时运行 DDL。

我该怎么做呢?我唯一能想到的地方是添加调用以Seed()在我的覆盖方法中运行 Sql DbInitializer,但这似乎并不完全合适,因为我没有播种 elmah,我正在为架构创建结构创建的。

在重新创建数据库时应用 DDL 的最合适方法是什么?

0 投票
1 回答
1381 浏览

c# - Elmah DDL 在由 context.Database.ExecuteSqlCommand (EF4.1) 运行时给出 sql 错误

我试图在我的 EF4.1 CodeFirst 应用程序中生成数据库时运行 Elmah Sql Server DDL。

为此,在我的DbInitializer.Seed方法中,我有:

GetElmahDDLSql只是一个字符串常量,包含来自http://code.google.com/p/elmah/source/browse/trunk/src/Elmah/SQLServer.sql的全部 DDL

不幸的是,当它运行时,我得到以下异常:

知道如何通过 EF4.1 正确执行 DDL 吗?

0 投票
1 回答
879 浏览

c# - 为什么将显式外部 ID 列添加到我的 EF4.1 CodeFirst 实体会导致外键约束冲突?

目前,我的实体使用如下模型:

这很好用,但我一直看到 CodeFirst 示例,其中为模型中的外部实体显式创建了 Id 属性。这是有道理的,所以我不必延迟加载用户来检索与MyModel实例关联的用户的 id 值。

但是,当我更改MyModel为:

尝试提交MyModel实例时出现以下异常:

为什么我会收到此异常?

0 投票
4 回答
66358 浏览

c# - 实体框架代码优先 - 定义此 EntityType 的键

嗨,我计划在我的一个项目中测试 EF Code First。这就是我真正想要的。我有三个表,结构如下

在第三个表中没有主键。所以它在运行时会出错。这是错误消息 -

System.Data.Edm.EdmEntityType: : EntityType 'User_role' 没有定义键。定义此 EntityType 的键。System.Data.Edm.EdmEntitySet:EntityType:EntitySet User_roles 基于没有定义键的类型 User_role。

为什么它会发生?有解决方案吗?

0 投票
3 回答
231 浏览

asp.net-mvc - EF 4.1 中的多个实体

我正在开发一个 MVC 应用程序,它使用来自不同实体的数据以及显示当前日期。我想将这些数据从控制器传递给视图。我应该创建一个实体来持有其他实体吗?

0 投票
3 回答
7690 浏览

.net - 在组织上,使用 Entity Framework Code First 时我应该在哪里放置常见查询?

我正在使用 EF 4.1 Code First 布局一个新的数据层,从旧的自制数据层迁移。

我设置了两个程序集,一个用于我的上下文,一个用于所有 POCO 代码第一类。

我有一些业务逻辑,例如,针对在几个不同地方使用的一个表(或几个表)的查询。 我应该把它放在哪里?

它不能进入​​ POCO 类,因为它连接了几个表,因此需要一个上下文。它可以在上下文中进行,但是该上下文会因数百个杂乱无章的查询而变得臃肿。 所有业务逻辑是否有共同的模式或安排?

0 投票
3 回答
2934 浏览

entity-framework - Entity Framework Code First - 使用 .Load() 和 .Local 减少往返

我正在使用 Entity Framework Code Fist 设置一个新应用程序,并且正在寻找尝试尽可能减少到 SQL Server 的往返次数的方法。

当我第一次在这里读到 .Local 属性时,我很兴奋可以在处理管道的早期关闭整个对象图,然后在以后使用 .Local ,而不必担心会产生额外的往返成本。

现在我正在玩它,我想知道是否有任何方法可以在一次往返中删除单个请求所需的所有数据。例如,如果我有一个网页,上面有一些列表、新闻、事件和讨论。有没有一种方法可以在一次往返中将他们 3 个不相关的源表的记录记录到 DbContext 中?互联网上的所有人都认为单个页面与数据库服务器进行 20 次往返是完全没问题的吗?我想通过适当的缓存机制可以缓解这个问题。

在一次往返中从EF查询返回多个结果时,我确实遇到了一些问题,但我不确定这些解决方案的复杂性和成熟度是否值得。

一般来说,在组合要传递给 MVC 控制器的数据集方面,您是否认为最好对您需要的每组记录进行单独的查询,然后使用EF 缓存来担心缓存层的大部分性能提供程序或 asp.net 缓存?

0 投票
1 回答
1350 浏览

entity-framework - OnModelCreating 使用 HasMany 设置级联删除导致问题

考虑两条替代线:

第一行抱怨无法从使用中推断出 TTarget。

所以我尝试了第二行,但是它现在抱怨无法将 IEnumerable 转换为 ICollection,即使我的模型没有在任何地方定义为 ICollection。

有任何想法吗?CommissionUnits 是 CommissionStructure 内的嵌套 IEnumerable 集合。这是以前的 IList,但 IList 在我使用 OrderBy 的存储库中从 LINQ 查询执行 ToList() 时出现问题。这就是为什么我在我的存储库中公开 IEnumerable 而不是 IList 的原因。所以我有点卡在岩石和坚硬的地方之间!

0 投票
4 回答
30440 浏览

entity-framework - 使用 Fluent API 的实体框架代码优先映射外键

我有一个用户可以有多个地址的情况。因此,我的用户类上有一个 ICollection。但我也希望用户能够选择默认地址。所以我做了以下事情:

我想public virtual Address DefaultAddress { get; set; }完全删除,保留 DefaultAddressId 并使用 Fluent API 映射它,因为当前的设置会造成很多麻烦(在这个类和我有类似设置的其他类中)。那么这可以使用fluent api来完成吗?

更新: 地址类目前没有对用户类的任何引用,它是一种单向关系。但是,是的,一个地址只属于一个用户,它不是多对多的关系。这是地址类: