问题标签 [entity-framework-4.3.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 投票
0 回答
601 浏览

c# - 将实体从另一个上下文添加到上下文并附加现有的对象图实体,因此不会重复

我有一种方法可以创建一个新实体,该实体具有一个非常复杂的对象图,其中可能包含也可能不包含现有实体。该方法管理自己的上下文。它返回在维护自己的上下文并尝试添加实体的不同类的方法中使用的实体。

分工的原因是因为第二种方法做了一堆处理,这是几个不同的实体创建场景所共有的。我不想在第一种方法中保存实体,因为在将实体保存到数据库之前,第二种方法成功很重要。

问题在于,当第二个上下文添加实体时,它会将整个对象图视为全新的,并在数据库中创建重复项。

将实体添加到第二个上下文并使其对象图中的所有现有实体都被附加的最佳方法是什么?

我试图避免做一些事情,比如遍历对象图和测试 ID > 0 ...

0 投票
1 回答
699 浏览

entity-framework - EF 4.3.1 迁移 - 如何降级生产数据库?

我一直在研究如何在 EF 4.3.1 迁移中进行降级,而我发现的只是脚本(就像这个EF 4.3 迁移 - 如何生成降级脚本?

为了升级我的用户的生产数据库,我MigrateDatabaseToLatestVersion<TContext, TMigrationsConfiguration> 在应用程序启动时调用该方法,因此我确保所有用户在安装我的应用程序的新版本后都具有相同的数据库架构。配置迁移后,我不需要在客户端运行任何脚本。

如果我想降级到其他版本会怎样?似乎很明显,这种方法只会向上移动,直到它到达最新的迁移......是否有类似MigrateDatabaseToVersion<TContext, TMigrationsConfiguration, DbMigration>DbMigration 对象是目标迁移的地方?

如果我想降级生产数据库,是否可以避免运行 SQL 脚本?

多谢你们!

0 投票
1 回答
193 浏览

c# - 代码编译,但 DbContext.SaveChanges() 最终尝试将 [...]Generic.List`1[x]' 转换为类型 'x'

我刚刚完成了一些代码的重构,现在在保存DbContext以下一些不应受我刚刚所做的更改影响的计算代码时出现此错误。

错误是:

{“无法将 'System.Collections.Generic.List`1[_3T.NewDomain.Quote.Pricing.PriceLineItem]' 类型的对象转换为 '_3T.NewDomain.Quote.Pricing.PriceLineItem' 类型。”}

调用时触发:DbContext.SaveChanges()

我将着手进行我预期的相当漫长的调试过程。但是,我对代码如何编译好感到完全困惑。然而,DbContext它试图将列表分配给单个实例变量。

有没有人遇到过会导致这样的事情?我忽略了什么?

0 投票
0 回答
61 浏览

entity-framework - 为什么这种关系默认不启用级联删除?

我在 LabelLineItem 和 DespatchPart 之间有一对多的关系。
我不明白为什么这种关系会关闭级联删除。

使用 fluent API 在上下文中没有定义任何关系。DespatchPart 中没有LabelLineItems 导航集合,因此没有对LabelLineItem 的引用。

据我了解,一对多关系默认为级联删除。如上面的代码示例所示。

而零或一对多关系默认为级联删除,如果以下情况发生: - DespatchPartId 被声明为 int?, - 流式 API 将关系声明为可选,即 DespatchPart.HasMany(p => p .LabelLineItems).WithOptional(i => i.DespatchPart)。

但这两种情况都不是,这就是我感到困惑的原因。

仅供参考 - 我确定级联已关闭,因为当我通过删除发送部分记录(在 SQLManagementStudio 中)测试级联删除时,当我尝试删除引用的 DespatchPart 记录时,我在 LableLineItem 表中收到了尝试的 FK 违规。如果删除已级联到 LabelLineItem 表,则不会发生这种情况。

0 投票
1 回答
629 浏览

asp.net - 如何在 ASP.NET MVC 3 应用程序中添加文本框和列以在其中动态保存文本

我必须添加一个按钮,单击该按钮会创建一个新的文本框,我可以在其中添加一些文本并将其保存在数据库中。

例如-我三次单击按钮,它将在数据库中创建 3 个文本框和 3 个新列以保存它们。

应用程序位于 ASP.NET MVC 3 和 Entity Framework 4.3.1 中。是否可以使用 EF 映射到静态类来做到这一点?

0 投票
1 回答
112 浏览

entity-framework - EF 4.1.3 为并发实现 Rowversion 不起作用

我有一个 BaseEntity 类,它包含一个名为 stamp、id 和 state 的字节数组,每个实体都从它继承我将 stamp 映射到

这是在 BaseEntityConfiguration 中设置的,设置如下

映射是这样完成的

数据库有 Stamp ROWVERSION NOT NULL;在表 EntityA 上,我有处理 DbUpdateConcurrencyException 的代码,但是即使邮票不同,这也不会被捕获此外,我期望的 Stamp 字段上也没有 where 子句

如您所见,没有 where 语句,我也从设置了法线映射的情况下尝试了它,但仍然得到相同的结果

**我发现问题是 EF 正在获取最新的 Rowversion 而不是传入的,我该如何阻止它。**