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

entity-framework - 实体框架和 SQL Server 2012 分页

SQL Server 2012 引入了一种更有效的分页机制,用于使用 FETCH 和 OFFSET 进行分页,这可能会对使用大量分页的应用程序的性能产生重大影响。Entity Framework 5 支持这个吗?因此,如果我使用 EF 使用 Take + Skip 进行分页,如果 EF 以 SQL Server 2012 为目标,LINQ 查询是否会被转换为新的 2012 TSQL?

0 投票
2 回答
440 浏览

linq - Entity Framework 5(预发布)关于实体关系等的新手问题

我看了这个SO问题。

我想在 EF 5 中做类似的事情。我没有看到 ForeignKey 属性,而是 EF5 中的 Association 属性。

另外,有人可以解释这是什么/意味着什么:

这是解释:

主键按默认约定映射。球队必须有两个比赛集合。您不能有两个 FK 引用的单个集合。匹配在没有级联删除的情况下进行映射,因为它在这些自引用多对多中不起作用。

我想做的与链接中的示例非常相似,但我不知道:

  1. 当我需要修改 DbContext
  2. 主键何时相互链接
  3. 当我需要显式使用关联来创建关系时

任何解释表示赞赏。

0 投票
1 回答
321 浏览

.net - EF5 多对多关系实体

我们正在使用 EF5 的预发布版本并首先编写代码。我有一个Orders模型和一个Products模型(many<>many 关系)。我用 OrderID、ProductId 和 Quantity 字段创建了OrderItems模型。它不会自动生成链接表。下面是代码:

我是否必须将它们注释为必需或使用关联标签明确链接它们?

0 投票
3 回答
10986 浏览

c# - 具有多个结果集的 Entity Framework 5 存储过程

我目前正在使用 asp.net mvc 4.5 和 EF5 Beta 2 进行编码,并且我有一个返回多个结果集的存储过程。我找到了这个站点,它说新版本(我正在使用)已经支持多个结果集。

现在我似乎找不到那种支持。由于我对 EF 完全陌生,我希望我没有做错什么。

对于创建的结果集,我的数据库中没有对应的实体。

0 投票
2 回答
1582 浏览

.net - 实体数据模型的多个图表

我已阅读 Entity Framework 5 Beta 中的新增功能:

您现在可以为每个实体数据模型创建多个图表。任何人都可以指导我进一步了解此功能以及有关此功能的任何入门教程。这是否意味着现在我们可以拥有多个 edmx 文件来更好地管理大量实体

0 投票
0 回答
751 浏览

visual-studio-2012 - Entity Framework 5 空间错误

我正在尝试使用 EF5 beta 2、MVC 和 Visual Studio 2011 / .NET 4.5 使用空间类型来保存位置信息。我正在使用代码优先方法,并且一直在关注这些教程:

使用 MVC 开始使用 EF - http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp -net-mvc-应用程序

EF 空间类型演练 - http://msdn.microsoft.com/en-us/hh859721

这是我的模型:

但是,当我尝试创建控制器时,出现错误:

如果我从我的模型中取出“public DbGeography CGLocation { get; set; }”,一切正常,我的数据库、控制器和视图都已创建。

我的印象是 LocationID 被自动用作密钥,为什么会出现这个错误?

谢谢,

0 投票
1 回答
4135 浏览

mysql - 实体框架代码首先出现 MySql 错误

Entity Framework 版本 4.3+ 出现以下错误

http://www.cnblogs.com/shouzheng/archive/2012/03/09/2388177.html

(翻译)使用EntityFramework Code First Development和MySql数据库问题的一个案例

我想使用最新版本的 EF,因为版本 <= 4.1 不提供迁移功能。

MySql.Data.MySqlClient.MySqlException (0x80004005):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'NOT NULL, ProductVersionmediumtext NOT NULL) 附近使用的正确语法;

ALTER TABLE 3 createMigrator, ObjectContext objectContext) at System.Data.Entity.Internal.InternalContext.CreateDatabase(ObjectContext objectContext) at System.Data.Entity.Database.Create() at System.Data.Entity.DropCreateDatabaseAlways 1.b_ 0(DbContext c) 在 System.Data.Entity.Internal.InternalContext.<>c _DisplayClass8.b_ 6() 在 System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action) 在 System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization () 在 System.Data.Entity.Internal.LazyInternalContext.b _4(InternalContext c) 在 System.Data.Entity.Internal.RetryAction 1 action) 在 System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()__MigrationH' at line 6 at MySql.Data.MySqlClient.MySqlStream.ReadPacket() at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId) at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int32& insertedId) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() at System.Data.Objects.ObjectContext.ExecuteStoreCommand(String commandText, Object[] parameters) at System.Data.Entity.Internal.InternalContext.ExecuteSqlCommand(String sql, Object[] parameters) at System.Data.Entity.Database.ExecuteSqlCommand(String sql, Object[] parameters) at System.Data.Entity.Migrations.History.HistoryRepository.BootstrapUsingEFProviderDdl(XDocument model) at System.Data.Entity.Internal.InternalContext.<SaveMetadataToDatabase>b__4() at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action) at System.Data.Entity.Internal.InternalContext.SaveMetadataToDatabase()
at System.Data.Entity.Internal.DatabaseCreator.CreateDatabase(InternalContext internalContext, Func

1.InitializeDatabase(TContext context) at System.Data.Entity.Database.<>c__DisplayClass21.PerformAction(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action
在 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) 在 System.Data.Entity.Internal.Linq.InternalSet 1.Initialize() at System.Data.Entity.Internal.Linq.InternalSet1.get_InternalContext()
在System.Data.Entity.Internal.Linq.InternalSet 1.Add 1.ActOnSet(Action action, EntityState newState, Object entity, String methodName) at System.Data.Entity.Internal.Linq.InternalSet(Object实体)
在 System.Data.Entity.DbSet`1.Add(TEntity entity) at DBPreparationTool.Form1.PrepareDB_Click(Object sender, EventArgs e) 在 D:\Workspaces\Experiments\FaizeMBRoot\Source\DBPreparationTool\Form1.cs:line 39 at System.Windows.Forms.Control.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnClick(EventArgs e) 在 System.Windows.Forms.ButtonBase.OnKeyUp(KeyEventArgs kevent) 在 System.Windows.Forms.Control。 ProcessKeyEventArgs(Message& m) 在 System.Windows.Forms.Control.ProcessKeyMessage(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ButtonBase.WndProc(Message& m) 在 System。 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control 上的 Windows.Forms.Button.WndProc(Message& m)。ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

0 投票
1 回答
4099 浏览

entity-framework - EF 5.0 枚举不生成

背景 我在安装了 .Net 4.5 的机器上使用 VS 2010,我读过它是就地安装(覆盖 .net 4.0 版本)。

我的项目仍然针对 4.0 和 4.5 选项不可用,但被告知没关系,因为 4.5 是就地安装。然后,我通过 nuget 安装了 EntityFramework -pre,并在运行 Upgrade-Database -Script 命令时发出通知,它不会生成枚举属性。

然后我发现了这个。我再次尝试从头开始做所有事情,但它仍然添加 EntityFramework 4.4 而不是 5.0。所以我手动将所有引用更改为指向 5.0 版本,以确保我拥有 EF 5.0 版本。全部编译。

问题 当我跑步时

我得到“在当前项目中找不到从 DbContext 派生的类。编辑生成的配置类以指定启用迁移的上下文。

所以我手动确保我的课程是正确的,如下所示:

DataContext 是 DbContext 的子类。

当我跑

我得到“在程序集 'MyProject' 中找不到迁移配置类型。(在 Visual Studio 中,您可以使用包管理器控制台中的 Enable-Migrations 命令添加迁移配置)。

MyProject 确实具有我上面提到的配置类,并且在包管理器控制台中,我为包含迁移文件夹和此配置类的项目选择了正确的下拉列表。

问题

  1. 当我通过 nuget 安装 EnittyFramework 时,我该怎么做才能确保它添加了 5.0 版本而不是 4.4,即使我安装了 .Net 4.5?

  2. 如果我不能做与上述问题相关的任何事情,我能做些什么来确保 Upgrade-Database 吐出一个脚本?

0 投票
1 回答
2200 浏览

c# - Entity Framework 5.0b2 Code First:同一张表的一对多和一对一,带有级联删除

经过几个小时的反复试验,我到达了这个线程,它解释了如何建立一个一对多的关系和一个一对一的关系与相同的两种类型。

但是,我不能让它与 Cascade Delete 一起使用:

抛出:“无法确定相关操作的有效排序。由于外键约束、模型要求或存储生成的值,可能存在依赖关系。” (System.Data.UpdateException) 异常消息 = “无法确定依赖操作的有效顺序。由于外键约束、模型要求或存储生成的值,可能存在依赖关系。”,异常类型 = “System.Data.UpdateException "

仅当我不取消设置 1:1 关系时才会发生这种情况(请参见下面的代码),我认为这是有道理的,因为它会创建一个无效的引用。我只是想知道是否有更好的方法来表示这一点。

示例代码:

0 投票
1 回答
3711 浏览

c# - 在模型中使用枚举时,实体框架 v5 候选版本会引发异常

根据此处的公告,我正在使用最新的 EF v5 候选版本。我的模型通过 EntityTypeConfiguration 使用映射文件...

当我尝试用枚举(drop+recreate db)替换模型上的字符串属性时,我得到了这个异常:

然后我尝试用 MyAppDbContext 装饰我的[DbModelBuilderVersion(DbModelBuilderVersion.Latest)]并得到同样的错误......最后我试过[DbModelBuilderVersion(DbModelBuilderVersion.V5_0)]了,我得到了另一个例外:

我的控制器是一个 ApiController,断线如下所示:

顺便说一句,我在 VS 2010 (w/.NET 4) 上使用 ASP.NET MVC 4 beta + Web API。

有任何想法吗?