问题标签 [dbcontext]

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 投票
1 回答
998 浏览

entity-framework - 多对多插入失败 - 实体框架 4.1 DbContext

我正在使用 DB first 方法,EF 4.1 和 DbContext POCO 代码生成。

我的数据库有一个多对多的关系,如下所示:

员工

员工ID

员工姓名

帐户

帐户ID

帐户名称

员工账户

员工ID

帐户ID

当我尝试插入一个新员工并为他们分配一个预先存在的帐户时会出现问题,所以我基本上这样做如下:

正在执行(不正确)的 SQL,正在尝试插入新的 [Account] 记录,并且由于违反约束而失败。当然,它不应该插入一个新的 [Account] 记录,它应该只在插入 [Employee] 之后插入一个新的 [EmployeeAccount] 记录。

有什么建议吗?谢谢。

0 投票
4 回答
1231 浏览

entity-framework - 实体框架 4.1 - 数据库优先方法 - 如何查找主键字段的列名?

我将 EF4.1 用于 DAL 的应用程序,并且我将 DbContext 模板生成器与 POCP 实体一起使用。该模型是从数据库中创建的,因此所有字段/PK/FK/关系都已在数据库中定义。我需要在代码中找出实体表的字段。一些表可能有单个字段 PK,而其他可能有复合 PK。我需要的是有一个方法可以返回一个实体的列表,所有字段名称都构成主键。它可以来自 DbContext,也可以来自实体,没关系。我什至可以自定义模板以在 POCO 实体中生成方法,如下所示:

但我不知道如何找到组成 PK 的字段名称。
有什么建议么?

谢谢

0 投票
1 回答
1365 浏览

entity-framework - 另一个多对多的复杂性——Entity Framework 4.1 DbContext

我正在使用 DB first 方法,EF 4.1 和 DbContext POCO 代码生成。

我的数据库有一个多对多的关系,如下所示:

员工

员工ID

员工姓名

帐户

帐户ID

帐户名称

员工账户

员工ID

帐户ID

当我尝试更新员工并将他们的帐户分配更改为预先存在的帐户时会出现问题,所以我基本上这样做如下:

正在生成的 SQL 正在对 [Employee] 表执行更新,对 [EmployeeAccount] 根本没有任何内容,没有删除没有插入。

0 投票
2 回答
1598 浏览

sql-server - MVC 3 + Entity Framework 中的外部 SQL Server 访问,仅用于查询

我正在开发一个使用 MVC 3 和 EF 4 的系统。在这个系统中,我需要查找一些已经存在于外部数据库中的信息。

将项目信息保存在的数据库中是可以的。我在上面定义了我的模型并让 DbContext 在我的服务器上创建表。

问题是当我尝试从外部数据库查询一些数据时。我已在以下位置的正确位置添加了连接字符串Web.config

是否可以只在我的项目上创建一些对该服务器的查询,而不会从这个外部数据库重新创建所有模型的重载?我知道我可以使用命令在我的代码中恢复此连接字符串System.Configuration.ConfigurationManager.ConnectionStrings["ExtDBConnectionString"].ConnectionString,但是如何创建连接并实例化我的查询?

提前致谢!

编辑: @rouen 引起了我的注意,我没有明确表示数据库是不同的。它们共享相同的架构!外部数据库是报告的输出;所以,我需要在我的项目上遍历它,将相关行导入本地数据库。

0 投票
1 回答
13112 浏览

c# - EF 4.1 OnModelCreating 未调用

我遇到了 EF 4.1 没有调用的问题,OnModelCreating因此我可以配置表等。我有一个现有的数据库。这是我的连接字符串:

这是我的类继承自DbContext

我已经在网上阅读和阅读,但我无法指出问题所在。OnModelCreating永远不会被调用,因此当我尝试查询任何内容时,表示实体/类(Vehicle、VehicleMake、VehicleModel)在当前上下文中不存在的异常。

0 投票
1 回答
907 浏览

c# - DbContext 正在初始化 ICollection 导航属性,但不初始化其他属性

如果我创建一个 ClassOne:myDbCntxt.ClassOneSet.Create();ClassTwoCollection 已初始化。

如果我创建一个 ClassTwo:myDbCntxt.ClassTwoSet.Create();ClassThreeCollection 和 ClassFourCollectionAsPrimary 为空。

为什么?

代理创建已启用,我可以看到生成的类名它们是代理类。我知道我已经过度装饰我的房产了,但这不是今天的问题。

我想了解的是为什么 ClassTwo 的 Collection 属性在从 DbContext 创建时未初始化。

谢谢


更新

问题实际上是在 ClassTwo 中没有将另一个成员声明为虚拟。我想有一个规则,即所有公共成员都应该是虚拟的,以便在代理中初始化集合属性。

0 投票
1 回答
3478 浏览

entity-framework-4.1 - DbContext 和连接字符串(提供程序未返回 ProviderManifestToken 字符串)

有没有办法将连接字符串传递给 DbContext 构造函数。我真的很讨厌在应用程序或 web.config 中进行配置设置的想法

当您想要引用包含 EF 模型的 dll 时,您必须注意复制该愚蠢的配置,而不是将其放在中心位置并让构造函数访问该设置,无论 dll 去哪里。

这是可能的还是我们被迫忍受这种挫败感?并非每个 EF 模型都存在于 Web 应用程序或 exe 中。

谢谢

更新:我认为这个错误与配置文件中缺少连接字符串有关。我正在传递一个 SqlConnection 对象,它给了我同样的错误。为什么会发生此错误?

0 投票
2 回答
273 浏览

entity-framework-4.1 - 具有非 SQLEXPRESS 实例的 DbContext

我正在尝试连接到现有数据库(非 SQLEXPRESS),但每次我尝试访问它。我收到以下错误:The provider did not return a ProviderManifestToken string.

我将一个SqlConnection实例传递给构造函数DbContext(DbConnection, bool)并在构造函数中实例化连接,因为我只是通过传递连接字符串得到了同样的错误。两种方法都得到相同的错误。

这发生在完整的 SQL Server 2008 和 2005 上。

更新:阅读下面的解决方案。

摘要:收到时始终查找内部异常提供者未返回 ProviderManifestToken 字符串

0 投票
1 回答
422 浏览

entity-framework - EF 4.1 - DBContext SqlQuery 和子查询

我想使用 EF 4.1 按某个类别查询产品表。以下是我的尝试(不起作用):

任何人都可以帮助这个查询吗?

0 投票
1 回答
153 浏览

asp.net-mvc-3 - EF 一直告诉我没有设置了 Identity 的 DB 实体的 InsertFunction?

应用程序使用 Entity Framework 4.1 和数据库优先方法。

我在数据库中有一个用于记录目的的简单表:

它将模型中的 ok 转换为 EntitySet 'LogEntrys' 和 Entity LogEntry。问题是,当我尝试从 applicatio 向表中插入内容时,出现以下错误:

无法更新 EntitySet 'LogEntrys',因为它有一个 DefiningQuery 并且元素中不存在支持当前操作的元素。

我在 SO 上看到过类似的帖子,我试图通过编辑 XML edmx 文件来解决它,就像在这个技巧中解释的那样:MSDN 博客技巧 34,我已经删除了定义查询。密钥已按应有的方式设置。

但后来我收到以下错误:

“无效的对象名称'AMSModelStoreContainer.LogEntrys'。”

我不确定是什么问题,和/或我做错了什么?

有任何想法吗?

谢谢你。