问题标签 [entity-framework-5]

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 回答
577 浏览

entity-framework-5 - EF 5.0 beta 2 中的延迟加载无关紧要?

我刚刚下载并安装了昨天发布的全新 Entity Framework 5.0 beta 2。现在,在我的 EDMX 模型文件中,我是否将“启用延迟加载”设置为 true 或 false 都没有关系。

我仍然需要“包含”我想用于检索到的对象的关联属性。

谁能解释为什么?

0 投票
1 回答
1323 浏览

wpf - EF DataContext与EF的datagrid使用不兼容?(VS11)

我有一个带有 Microsoft Datagrid 的 VS11 beta WPF 应用程序,该应用程序基于 Entity Framework 5.0b2 模型(来自 sql server 数据库)中的表。(网格使用通过从实体框架模型添加数据源并将表格从该模型拖放到设计图面而自动生成的任何代码。)。然后,我使用 EF5.0 DBContext 代码生成器插件来生成可以在应用程序中使用的 DbContext 类型。

结果并不好。我得到一个似乎无法修复的编译错误;至少我的尝试让事情变得更糟。数据网格不喜欢 DbContext 并且不与它共存(当数据网格和 DbContext 都基于相同的数据库和表时)。是否有解决方法,也许是通过更改代码生成器模板?

错误消息粘贴在最后。感谢您对此的任何帮助或见解。

(请注意,以下密切相关的帖子不是答案,因为虽然我可以将 dbcontext 转换为 objectcontext,但是当我这样做时,我无法让 datagrid 正常使用它;如果我将 objectcontext 转换为 dbcontext,我没有自动生成的 dbcontext 类型: 将 DBContext 转换为 ObjectContext 以便与 GridView 一起使用)。我正在寻找一个相当简单的解决方法——如果我开始手动编码所有类型和转换,我确信有一个解决方法,但我想保持使用自动生成代码的易用性——我不想被占用代码生成器可以而且应该这样做。如果没有解决方案,我想我会将控件基于 ado.net,并将实体框架留给非 ui 代码。

错误
无法将类型“System.Data.Entity.DbSet”隐式转换为“System.Data.Objects.ObjectQuery”

Documents\Visual Studio 11\Projects\WpfApplication3\WpfApplication3\MainWindow.xaml.cs

导致错误的行(由 Microsoft 拖放以 EF 表为源的数据网格创建): System.Data.Objects.ObjectQuery myTblsQuery = myDbsEntities.MyTbls;

0 投票
2 回答
971 浏览

visual-studio - 执行添加迁移时出现 EF 5 和 VS 11 错误

我刚刚安装了 VS 11 并创建了一个类库项目。然后我添加了实体框架 5 beta。然后我创建了一个简单的用户类和 dbcontext 类。然后我使用控制台命令“Enable-Migrations -EnableAutomaticMigrations”,它工作得很好,并添加了适当的迁移目录和配置文件。问题是当我运行“Add-Migrtion InitialMigration”时,出现以下错误。

System.Reflection.TargetInvocationException:调用的目标已引发异常。---> System.IO.FileNotFoundException:无法加载文件或程序集“System.Data.Entity,版本=4.2.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。该系统找不到指定的文件。---> System.IO.FileNotFoundException:无法加载文件或程序集“System.Data.Entity,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”或其依赖项之一。该系统找不到指定的文件。

我之前安装了 EF 4.2,但我卸载了它。事实上,在我第一次尝试但失败后,我已经卸载了 VS、SQL 和任何相关的东西。然后我重新启动并简单安装了 Visual Studio 11 并再次尝试,但仍然得到相同的错误。我怀疑这与以前的实体框架安装有关,但我不知道如何理顺它。

我在 Win 7 上运行我已经尝试过这里描述的 gacutil任何人都可以发现为什么我在测试 EF 5 beta 时不断收到这个错误,但我猜它没有找到任何可以删除的东西。

0 投票
2 回答
1591 浏览

entity-framework - 当属性受到保护或内部时,带有数据库迁移的 InverseProperty 不起作用

我有以下实体模型

这是我正在使用数据迁移的纯粹简单的多对多关系用户和标签。当我执行命令 Add-Migration 或 Update-Database 时,我收到以下错误“在类型 'Kigg.DomainObjects.Entities.User' 上的属性 'Tags' 上的 InversePropertyAttribute 无效。属性 'Users' 不是有效的导航相关类型“Kigg.DomainObjects.Entities.Tag”上的属性。确保该属性存在并且是有效的引用或集合导航属性。”

当我将 Tag 中 Users 属性的访问修饰符更改为 public 时,它工作正常,并且生成是我想要的。

从我的设计角度来看,我想隐藏 Tag.Users 属性并使其受保护或内部使用,以供内部使用,因为我不想将其公开给公共 API。

注意:我不是在这里讨论我的设计。我在问是否可以在 Tag.Users 受保护或内部使用时这样做?

0 投票
1 回答
6742 浏览

entity-framework - Entity Framework 5.0 Beta - 是否会提供 DbContext 代码生成模板?

我提前工作了一点,并计划从 EF 4.2 CTP 过渡到 EF 5.0,当在 VS11 + .NET 4.5 中“添加代码生成模板”时,DbContext 模板不再可用。是否有任何提示是否可用,如果没有,为什么(只是好奇)?

更新:

我在 Enum 教程中看到了对 DbContext 模板的引用,但是在我的 VS11 项目中没有看到该模板,该模板针对 .NET 4.5 并安装了 EF5.0 -pre。我看到了另外两个 V5.0 模板(EntityObject 和 Self-Tracking)。会不会与其他安装发生冲突,比如在我的情况下,Entity-Framework 4.2 CTP?在试用 EF 5.0 时,我遇到了 VS 无法决定使用什么 System.Data.Entity 并默认为 4.2 的模板问题。

更新 2:

全新安装 Windows Server 8 Beta,全新安装 Visual Studio 11 Beta,仍然没有 EF5 DbContext 代码生成模板。未安装 EF 4.2 和 VS 2010 的模板扩展,实际上 VS 2010 也没有安装。仅供参考...

代码生成模板截图

0 投票
2 回答
1519 浏览

asp.net-mvc-4 - 如何使用 Entity Framework 5 Beta 2 让枚举在 mvc4 中工作?

我在 MVC3 -> MVC4 项目中使用 Nuget 更新到 Entity Framework 5.0.0-beta2。

我试图让枚举工作,我添加的每个迁移都忽略了枚举字段。

我在 web.config 中找到了这个:

如何将此参考更新到 EF5?

那是我需要让枚举工作吗?

0 投票
1 回答
7013 浏览

ef-code-first - 在 WebAPI 控制器中序列化 EF Code First 5.0 数据时出错

我最初问过这个问题: 如何解决“指定的包含路径无效”?已回答,并且我的 .Include() 现在正在工作,但是,当序列化程序尝试工作时,它很神奇,我收到以下错误:

以下是我为返回数据所做的工作:

我的类定义相当简单:

我也尝试删除“虚拟”,但后来我得到了循环引用。我尝试将 ICollection Products 上的设置器设为私有(如此处建议:http ://forums.asp.net/t/1773164.aspx/1 ),这可以清除错误,但我的产品不是返回 JSON。

我需要做什么才能使数据与其中的类别及其产品序列化?

编辑 这是我得到的堆栈跟踪:

0 投票
2 回答
4402 浏览

c# - 实体框架 5 枚举命名

我首先使用带有迁移和代码的 EF 5。这一切都很好,但有一些问题/问题我想解决。

让我们从一个简单的例子开始。假设我有一个用户表和一个用户类型表。用户类型表是我的应用程序中的枚举/查找表。所以用户表有一个 UserTypeId 列和一个外键 ref 等到 UserType。在我的 poco 中,我有一个名为 UserType 的属性,它具有枚举类型。

要将初始值添加到 UserType 表(或稍后添加/更改值)并在初始迁移器等中创建表。我需要一个 UserType 表 poco 来表示数据库中的实际表并在地图文件中使用。我将 User poco 中的 UserType 属性映射到 UserType poco 中的 UserTypeId。所以现在我有一个用于代码优先/迁移/上下文映射等的 poco,并且我有一个枚举。两者不能有相同的名称,所以我是否有一个名为 UserType 的 poco 和枚举的其他名称,或者 UserType 的 poco 是 UserTypeTable 之类的?

然而,更重要的是,我是否遗漏了代码首先如何工作的一些关键元素?我尝试了上面的示例,运行了 Add-Migration,但它没有为枚举添加查找表。

0 投票
2 回答
2255 浏览

c# - 未在数据库中创建映射的表

我一直在尝试使用 EntityFramework5 实现存储库模式。我已经掌握了工作的基础。仅在必要时才加载我的存储库,并且数据会按应有的方式在数据库中插入/更新/检索。问题是:我无法正确创建带有映射的表,甚至根本无法创建。我一直在网上阅读一些文章,甚至在这里,谈论使用映射表并在数据库中创建它们的方法,但我没有成功。在这里提出我的问题。

如何让它在我的场景中工作?

我将解释到目前为止我在做什么:

下面的这个方法被覆盖,据说是创建映射和表。

PS:Generics.InvokeGenericMethod是我创建的一种方法,它正在工作。它做它所说的:)

不工作的部分是我使用 SetConfiguration 的地方。SetConfiguration 是我为每个添加到具有映射的上下文的类创建的方法,将该映射镜像到数据库。

这是一个示例(在这种情况下,收件人有很多消息,而消息有很多收件人/多对多关联):

PS:我留下了注释代码,所以你可以看到我尝试过的另一种方法。

this.Database.Initialize(false);被调用时,我收到此错误:

堆栈跟踪:

有任何想法吗?

谢谢。

0 投票
2 回答
9451 浏览

entity-framework - 我可以将枚举存储为 EF 5 中的字符串吗?

我们在解决方案中使用 EF CF 已有一段时间了。大粉丝!到目前为止,我们一直在使用 hack 来支持枚举(在模型上创建一个额外的字段;在映射期间忽略枚举;并将额外的字段映射到我们将使用的数据库中的列)。传统上,我们一直将枚举作为字符串(varchars)存储在数据库中(使其美观且可读)。现在有了 EF 5(Beta 2)中的枚举支持,它看起来只支持将枚举映射到数据库中的 int 列......我们可以让 EF 5 将我们的枚举存储为它们的字符串表示形式。

其中“Type”是 DocumentType 类型的枚举

我尝试使用以下方法对其进行映射:

我以为会是灵丹妙药,但..

那只是抛出:

指定的架构无效。错误:(571,12):错误 2019:指定的成员映射无效。类型“Dodson.Data.DataAccess.EFRepositories.Workflow”中成员“Type”的类型“Dodson.Data.DataAccess.EFRepositories.DocumentType[Nullable=False,DefaultValue=]”与“SqlServer.varchar[Nullable=”不兼容False,DefaultValue=,MaxLength=8000,Unicode=False,FixedLength=False]' 'CodeFirstDatabaseSchema.Workflow' 类型中的成员 'Type'。

你的意见?