问题标签 [edmx]

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

entity-framework-4 - EF4 中的 Datetime2 转换

好吧,在花了无数时间谷歌搜索答案之后,我不得不在这件事上添加另一个问题......

我有一个包含 2 个日期时间字段的表,由 VS 2010 中的 EF4 EDMX 设计器生成。

SQL 2008 中生成的字段是 datetime 而不是 datetime2。

查看 edmx 标记,这些字段的类型为 datetime2。

插入因已知的转换问题 datetime2 / datetime....而失败

我已手动将 sql 表上的字段更改为 datetime2。

仍然没有运气。

我可能在这里遗漏了一些东西,但无法弄清楚到底发生了什么。

我什至尝试从设计器重新生成数据库并从数据库重新创建 edmx ......

仍然是同样的问题。

非常感谢任何帮助。

0 投票
1 回答
1274 浏览

entity-framework - 实体框架——级联删除复合键实体时,在主体对象之前未删除依赖对象

我在使用复合键级联删除依赖对象时遇到问题。具体来说,EF 发出的 SQL 指令会尝试在依赖实体之前删除主体实体。

我已经OnDelete="Cascade"在我的 EF 模型的 CSDL 和 SSDL 中进行了设置,并将依赖实体显式加载到内存中,以便 EF 知道如何处理它们。我让这个与另一个 FK 关系正常工作,并且 EF 在删除原则之前正确删除了子实体。

但是,在这种情况下并非如此,我怀疑这是因为依赖实体具有复合键。简要看一下架构:

我希望在删除实体 A 时删除实体 A_B 的条目。

我可以查看 ObjectStateManager 并查看 A 的 A_B 实体加载到内存中并标记为删除,但 EF 在删除 A_B之前发出 SQL 命令来删除 A。当依赖实体有自己的 PK 时,这可以正常工作,但当它是复合键时似乎会出错。即使我明确告诉 EF 的 FK 协会(SSDL 和 CSDL)删除应该是级联的,它也不会首先删除子级。

同样,我将 A 及其 A_B 都加载到内存中,并且 ObjectStateManager 将它们全部标记为删除。我正在使用启用了代理创建的 POCO,尽管我通过针对 Context 的 LoadProperty 调用将子实体显式加载到内存中。

有人见过这个吗?复合键真的是问题还是只是分散注意力?为什么 EF 在一种情况下以正确的顺序处理 SQL 命令,而在另一种情况下则不然?


编辑:我已经阅读了 OnDelete ( http://msdn.microsoft.com/en-us/library/cc716734.aspx ) 和关系管理 ( http://msdn.microsoft.com/en-us/ ) 的文档库/ee373856.aspx)。题为“识别和非识别关系的注意事项”的部分似乎暗示我想要做的事情是可能的,而且确实是预期的。它可能是数据库的 EF 提供程序程序集中的东西吗?我正在使用 IBM.Data.DB2 程序集处理 Informix 数据库,而不是针对 SQL Server 数据库。

进一步更新:我已更新到 IBM DB2 v9.7fp3a 和 EF Providers Beta Refresh -- http://www.ibm.com/developerworks/forums/thread.jspa?threadID=345634&tstart=0

0 投票
8 回答
54192 浏览

c# - 错误 3002:映射片段中的问题 | c# linq 到实体

我有一个控制台应用程序,我想做的是每次应用程序运行时,日期和时间都会发送到我数据库中的一个表中。

表结构是这样的:

很简单。

我已经在我的应用程序中更新了 model.edmx 以反映这一新变化,但是现在我收到以下错误,我不完全确定它的含义。

错误 3002:从第 1330 行开始映射片段时出现问题:表 FTPRuns 的键 (FTPRuns.ID) 的潜在运行时违规:列 (FTPRuns.ID) 在概念方面映射到 EntitySet FTPRuns 的属性 (FTPRuns.ID),但它们没有形成 EntitySet 的关键属性(FTPRuns.ID、FTPRuns.LastRun)。

这是我用来更新数据库的代码片段:

如果有人可以帮助我,我将不胜感激:)

谢谢。

0 投票
1 回答
530 浏览

silverlight-4.0 - Silverlight DataForm 未触发 EditEndedEvent 且未在 AddNewItems 上提交

我有一个 Silverlight 用户控件。这包含一个带有 ReadOnly、Edit 和 New 模板的 DataForm。

模板模式运行良好,编辑表单运行良好。但是当我使用 AddNewItem 时,除了它从未调用过 EditEnded 事件之外,我无法执行所有操作,但是它调用了 EditEnding 并且之后它在没有任何警告的情况下丢失了。

我在 New 模式下使用 Datacontext.CommitEdit 进行提交。然后假设在没有错误并且 DataContext 有任何更改的情况下触发 EditEnded 并执行 SubmitChanges。由于逻辑不在 EditEnded 内部,我无能为力。

如果我能得到一些建议,那将很有帮助。

0 投票
1 回答
643 浏览

entity-framework-4 - 扩展核心 Edmx,EF4 中的多个 Edmx

我们有一个 EF4 EDMX,其中包含约 300 个实体,这些实体用于我们的核心产品套件(从数据库导入的实体)。

当我们获得新客户时,他们往往希望存储额外的信息,并让我们开发超出我们业务领域且完全定制的定制流程。例如,我们与一家安全公司签订了合同,他们希望存储有关其安全级别的信息并拥有在这些级别上起作用的流程。

在每种情况下,我们都需要添加自定义表和/或将自定义字段添加到现有实体。我们有一个很好的方法来使用以前的技术,其中核心类库没有与自定义表等垃圾。我们只是从自定义类库中的核心实体(相当于 EF 中的 EntityObject)继承并根据需要添加自定义。

同样,我们不想将这些自定义表和属性添加到我们的核心 EDMX。我们希望在一个单独的类库中从核心 EDMX 中“继承”一个新的自定义 EDMX,我们可以在其中添加自定义项。继承将允许我们在 Core EDMX 中做我们能做的一切,再加上更多。

我们正在使用 t4 模板根据这篇博文生成我们的存储库(我们没有使用模型优先的方法):

http://geekswithblogs.net/danemorgridge/archive/2010/06/28/entity-framework-repository-amp-unit-of-work-t4-template-on.aspx

我们可以根据需要扩展 EDMX 吗?

我们提出了一个骇人听闻的解决方案,即核心实体上的方法扩展,它在单独的 EDMX 中返回一个自定义实体,如下所示:

尽管出于一些明显的原因,这并不理想。

任何帮助深表感谢。

0 投票
1 回答
1013 浏览

c# - edmx 连接字符串

我正在开发一个使用 edmx 进行数据访问的应用程序。
我意识到每个 edmx 文件在配置文件中都有自己的连接字符串。
有没有办法为所有 edmx 文件共享一个连接字符串?

0 投票
1 回答
796 浏览

wpf - 如何将 EDM 绑定到 WPF 列表框?

我试图弄清楚 WPF 绑定到 SQLite。

我生成了一个 ADO.NET 实体数据模型来表示我的 SQLite 数据库。该数据库仅包含一个表“People”,其中包含两列“person_id”和“person_name”。现在,我在 WPF 应用程序中为该表生成了 EDM 类。

我正在尝试绑定到列表框。我可以从源中删除项目并看到它更新列表框。但是我无法使用文本框将项目添加到源中并看到它更新列表框。

我在 Window1 类中声明了数据实体,如下所示:

p>

我有一个列表框,它绑定到 Window_Loaded 事件处理程序中的 ObjectQuery,如下所示:

我有另一个文本框,用于通过单击按钮添加人员。我可以通过在列表框中选择一个项目并单击删除按钮来删除项目。单击提交按钮时,更改将提交到数据库。请考虑以下代码:

我尝试使用另一个名为“刷新”的按钮以下列方式刷新列表框控件,但没有成功(尽管当我单步执行代码时,我看到源代码已更新):

如果您想知道,这里是 XAML 代码:

我不确定我这样做是否完全错误。任何帮助表示赞赏。

0 投票
1 回答
4458 浏览

entity-framework - 如何获取实体数据框架中所有表的列表?

我需要获取实体数据框架中所有表的列表。

我知道在 Linq2SQL 中我们可以使用这样的东西。var dataContext = new DataContext(); var dataContextTableNames = (从 dataContext.Mapping.GetTables() 中的表中选择 tables.TableName).ToList();

但是,我需要获取实体数据框架中所有表的列表。有任何解决方法可以在实体数据框架中获得类似的列表。

提前致谢。

0 投票
7 回答
24271 浏览

entity-framework - 如何正确删除和重新添加实体数据模型

实体框架的新手在这里。使用 VS 2010 和 SQL Server 2008 表达数据库。

添加新表后,我无法刷新实体数据模型。所以,我按照我在这里找到的建议删除并重新生成模型。

我进入实体数据模型向导的“选择您的数据连接”部分,并选中“将 Web.config 中的实体连接设置保存为:”。但是,我现有的名称附加了一个 1。例如,MyDatabaseEntities 现在是 MyDatabaseEntities1。当然,我不希望附加“1”。我终止了 Web.config 中现有的连接字符串,并在我的解决方案中删除了对该名称的所有引用。然而,当我尝试继续时,出现以下错误:

“'MyDatabaseEntites' 与应用程序设置中的现有属性名称冲突。请选择其他名称”

我在解决方案的任何地方都找不到对该名称的引用。我可以取消选中该选项,它将继续,但它仍然不会在数据库中添加两个表。接下来,我完全关闭了一切,重新启动,然后再次尝试。这次我没有收到上面的错误,但是我的三个新表中的两个仍然没有被添加到 edmx 模型中。

任何想法表示赞赏。此外,即使在 VS2010/.NET 4 中,这似乎仍然存在相当大的问题。帮助恢复我的信心......我现在想放弃 Entity Framework。根据我迄今为止的经验和此处发布的其他一些问题,我觉得我将花费更多时间来研究 Entity Framework 的陌生性,而不是编写有用的代码。

更新:我找到了解决方案。设计器不显示错误。您必须查看本机 XML(edmx 文件)才能看到错误。请参见此处: ADO.NET Entity Framework:更新向导不会添加表

0 投票
2 回答
457 浏览

c# - LINQ WhereClause 的问题

非常感谢leppie:目前我得到了

当它到达“mailMergeItems =”时,它会掉线并给出错误:“参数'f'未绑定在指定的LINQ to Entities查询表达式中。”

我注意到,当仅检查人员或仅检查 membertypeId 时,它可以正常工作..但结合第二个错误,我认为它是“f =>”。