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

c# - 使用 EntityFramework 4.1 中的 POCO 的 WCF WebHttp 服务 - dbContext

我正在尝试在 WCF WebHttp 服务中返回一个 POCO。我正在使用 EntityFramework 4.1 并生成实体是使用 DbContext 生成器创建的实体。

一切都适用于 EF。我可以查询数据库并使用实体。问题来自我的 WebHttp 服务。当我尝试返回这些实体的列表时,我收到错误 324(空响应),当我尝试返回单个实体对象时,我收到 WCF 错误 - “请求错误”。服务帮助页面看起来不错,示例响应也不错。

我通过仅返回将服务的返回类型更改为列表和字符串的实体的名字来测试服务。这工作正常。

我假设(看过关于 WCF WebHttp Service 的教程)不需要向实体添加 [Serialize()] 或其他属性。

我迷失了为什么服务不会返回实体。

感谢您的任何/所有帮助。抢

这是服务的代码...

0 投票
2 回答
6366 浏览

entity-framework - EF 4.1 - DBContext SqlQuery 和包含

我想使用 DBContext SqlQuery 执行原始 sql,然后包含相关实体。我尝试了以下方法,但它没有加载相关实体:

有什么帮助吗?

0 投票
1 回答
2019 浏览

entity-framework - 如何使用 Entity Framework 4.1 将连接字符串传递给数据库优先 DBContext 的构造函数?

由于各种原因,我不想将的 Entity Framework DB 模型的连接字符串存储在各种 .config 文件之一中。(我将最新最好的 DBContext API 与新的 Entity Framework 4.1、.NET 4 和 Visual Studio 2010 C# 一起使用。)但是,DBContext 的代码生成模板只创建了一个无参数的构造函数。(如果我不使用 DBContext API,那么我的实体框架模型有 7 个不同的构造函数可供选择,包括我想要的那个。)

我能弄清楚如何做到这一点的唯一方法是直接修改代码生成模板(context.tt 文件)以提供我想要的构造函数(下面的示例代码)。这行得通,但感觉就像我正在“艰难地”做这件事。获取接受连接字符串的 DBContext 构造函数的正确方法是什么?

最后一点,以防它可能对其他人有所帮助。虽然这种方法有效,但我花了一段时间才意识到“连接字符串”并不是严格意义上的数据库连接字符串,而是包含数据库连接字符串的特殊实体框架连接字符串(就像应用程序中存储的一样) .config 文件)。

0 投票
1 回答
9176 浏览

c# - 如何模拟 DbContext

这是我要测试的代码

}

这是我的测试代码

一旦我运行测试,我就得到了 DbContext 的 Null 异常

我遇到的问题是我无权访问 DbContext。我将如何解决它

0 投票
1 回答
1446 浏览

c# - DbContext 动态映射表

如果我有一个 dbContext,它的连接字符串是在上下文创建期间创建的,然后我想根据其中的一些信息映射表名......我如何将该数据传递给表映射?例如:

现在,当您初始化 dbcontext 时,它类似于:

现在我希望我的表映射到喜欢“table_”+国家+“_endtablename”;我想如何将数据传递给映射调用?

这些表映射到使用此格式的现有数据库。该国家实际上来自登录用户的凭据,因此基于位置等。我只需要找到一种方法来访问该国家代码,该代码是后者创建的 dbcontext 中基类的内部构造函数。

0 投票
1 回答
164 浏览

.net - EF 和 POCO。如何正确设置我的项目

最近,我开始在 .NET 中使用 EF 4.1,直到今天我尝试建立自己的项目(到目前为止,我正在从事由其他人启动的项目)之前,我都获得了一些积极的经验。

事情只是不想开箱即用。我没有做任何特别的事情。实际上,首先它起作用了,然后它突然停止工作,现在在浪费了 4 个小时之后,我正在写这篇文章。

我的解决方案包含 3 个项目:
WebApp(我的应用程序所在的位置)
DataAccess
BusinessObjects

DataAccess包含 EntityModel.edmx 和 EntityModel.Context.tt 文件。
BusinessObjects包含具有所有基础对象的 EntityModel.tt。我使用 ADO.NET DbContext 生成器来生成对象。
EntityModel.Context.tt 的命名空间设置为 BusinessObjects。

WebApp 和 DataAccess 正在引用 BusinessObjects 项目。BusinessObjects 不引用任何内容。

(我相信我确实设置正确。EntityModle.tt 能够看到 edmx 文件,并且在我编辑文件时创建了对象。)

因此,此时项目编译良好,没有错误。

在我的下一步中,我将 EntityDataSource 添加到我的 default.aspx 页面,在我在数据源配置中选择我的连接(来自 web.config)后,我收到错误:无法加载此连接字符串中指定的元数据。考虑重建 Web 项目...无法加载指定的元数据资源。

之前我在连接字符串中拼错某些内容、更改型号名称或类似内容时遇到过这个问题,但现在我什么也没做。我多次重新创建 edmx 文件及其 POCO,确保从 app.config 复制连接字符串。它根本行不通。

任何帮助表示赞赏。谢谢。

0 投票
1 回答
458 浏览

c# - Entity Framework 4.1 不会在 SaveChanges() 上将数据放入数据库

我在使用新的 Entity Framework 4.1 时遇到问题。几天前我开始测试它,我对整个 POCO 概念和这个新 API 仍然很陌生。

无论如何,在做一些编码时,我创建了这样的东西:

如果 Tag this 这样的名称已经存在,则应该检查数据库,并且我在这段代码中使用了这个函数:

这基本上是为新创建的照片添加标签,检查照片是否已经在数据库中,而不是将其添加到数据库中,并在每张照片之后调用 SaveChanges()。

好吧,我的问题是,在执行函数 GetTagWithName 期间,在获取“SingleOrDefault”时会导致错误“序列包含多个元素”,这不应该发生,因为我在添加任何新标签之前检查了整个数据库,使用此函数进行检查如果标签已经在数据库中。

从我在代码中看到的情况来看,发生这种情况的原因是,即使我将我从数据库中获取的 Tag 对象添加到 Picture 中,它稍后仍会将其作为新对象添加到 Tags 表中。

对此有什么解释吗?

0 投票
2 回答
21281 浏览

c# - 为什么在使用实体框架时要重新启动 DbContext?

我不知道是否有更好的方法来使用,DbContext因为在使用 WCF 时不建议将其设置为静态。所以我们每次想要访问数据库时都会创建它。

了解了使用 Entity Framework 的所有优点,有些变得无用,因为我们DbContext每次都在重新创建;并且更多可能会导致开销,因为要考虑创建大实体模型的过程。

你有什么意见?

0 投票
1 回答
694 浏览

entity-framework - 无法可靠地查询 EntityFramework 共享 dbcontext

我正在尝试在多个存储库中共享一个带有 4 个 DbSet 的简单 DbContext,我的每个存储库都继承自这个基类

问题:这是在存储库之间共享连接的适当方式吗?

访问各种存储库时,我的单元测试出现间歇性故障。存储库方法 GetEntityByName 引发异常

测试方法Tests.Service.TestDelete 抛出异常:System.ObjectDisposedException:ObjectContext 实例已被释放,不能再用于需要连接的操作。

如果数据库已经存在,则代码按预期执行。当我将 GetEntityByName(string name) 的实现更改为以下非性能代码时,它也可以工作

问题:这里发生了什么?

请记住,如果在我运行测试时数据库存在,我根本不会收到错误。

tia, jt

0 投票
1 回答
1098 浏览

entity-framework - 渴望加载多个相关实体

我需要向已经存在的 Repository 类添加一个可以处理多个 Include 的扩展方法:

当前的实现只能处理一个相关实体。我还需要能够急切地加载两个或更多相关实体。

我的实体类:

我将在哪里使用它:

谢谢!