问题标签 [ado.net-entity-data-model]

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

c# - ADO.NET 数据服务

我正在考虑将 ADO.NET 数据服务与 silverlight 一起使用。我一直在查看 msdn 上的 数据模型和数据服务实现(ADO.NET 数据服务/Silverlight)主题。在他们的示例中,他们构建了从数据库生成的数据模型,并在数据模型中查询实体。就我而言,我想使用存储过程,所以我创建了数据模型并添加了存储过程而不是表和视图,但现在我不确定如何执行它们。有人有示例吗?

0 投票
0 回答
544 浏览

.net - ADO.NET 实体:限制基于视图的数据选择

考虑以下示例:

SQL 表客户:

SQL 视图 ViewCustomerSelection:

我想创建 ADO.NET 一个仅选择在 ViewCustomerSelection 中具有相应值的客户的实体

以下不起作用:

  • 创建映射到 Customer 和 ViewCustomerSelection 的实体,而不使用 ViewCustomerSelection 中的任何条件和任何字段: ViewCustomerSelection 不包含在 SQL 中,并且返回所有客户。
  • 包括来自 ViewCustomerSelection 的字段:返回正确的选择,但现在 Customer 对象不可更新
  • 在 SomeOption 字段上指定“非空”条件:错误 - 必须映射具有 'IsNull=false' 条件的属性 ViewCustomerSelection.SomeOption。
  • 在 ViewCustomerSelection.ID 字段上指定“非空”条件:错误 - “实体类型在其主键上包含一个条件。请从映射中删除该条件。

澄清

数据库定义:

我想要具有 ID 和名称的实体 Customer,它只有 ViewCustomerSelection 中存在的记录的记录(注意 - 实际上视图更复杂,不能使用简单的条件来表达)

0 投票
1 回答
2356 浏览

ado.net - 如何获取 ADO.NET 实体模型中的外键?

我有 3 个表(以及实体模型中的相应实体) Game: Id - primay key ... 其他列

Player: Id - 主键 ... 其他列

GamePlayer (一个玩家可以参与很多游戏) GameId --> 来自 Game PlayerId 的外键 --> 来自 Player 的外键 ... 其他列

在我的代码中,我可以通过其他方式使用 gameId 和 playerId。使用这个我想知道玩家(playerId)是否正在参与特定的游戏(gameId)。所以我这样做:(实体是我的上下文对象)

IQueryable query = entity.GamePlayer.where(gp => ((gp.Game.Id == gameId) && (gp.Player.Id == playerId))) 如果查询返回一行,那么我知道该玩家正在参与在那场比赛中。

我阅读了多个关于实体引用的 MSDN 博客,但我很困惑。似乎 MSDN 建议我首先必须检查 IsLoaded 的 EntityReference 对象,如果没有加载,我必须加载实体,然后我才应该在查询中使用它。

GamePlayer 确实有 GamePlayer.GameReference 和 GamePlayer.PlayerReference,但我无法检查是否加载了引用,因为我手头没有 GamePlayer 对象。GamePlayer 表包含两个 1...* 关系,仅此而已。我必须仅使用 GameId 和 PlayerId 查询 GamePlayer。我在这里做错了什么?

我应该改为获取玩家(或游戏)对象(使用他们的 ID)并检查 GamePlayer 实体集合吗?Sql 就是这么简单。如果这太天真了,对不起,我很难将我的 sql 查询转换为实体查询。

0 投票
4 回答
5006 浏览

.net - 向 ADO .NET Entity Framework 添加业务层

我正在开发我的第一个 .NET 项目(.NET 3.5、ADO.NET 和 C#)。我们已经构建了我们的实体模型,并正在尝试构建一个干净的业务对象层。

我们已经有了基本的实体模型,并且我们希望将某些业务级语义添加到默认数据访问器(导航属性等)。

Person例如,假设我们在和之间存在多对多关系BankAccounts。假设我们想在业务层添加冻结帐户的功能。我们现在希望能够从 Person 导航到:

  • 他们所有的银行账户,
  • 他们未冻结的银行账户,以及
  • 他们冻结的银行账户。

自然,我们希望将名义情况设为默认值:如果我导航Person.BankAccounts(),我希望它返回他们未冻结的帐户。我可以添加导航属性Person.FrozenBankAccounts()Person.AllBankAccounts().

我们提出的两种方法似乎都有相当多的代码气味。

  1. 我们找不到覆盖实体模型方法的方法。Person.BankAccounts()因此,作为返回所有银行账户的访问者离开。然后我们添加 aPerson.FrozenBankAccounts()和 a Person.NonFrozenBankAccounts()
  2. 向代码库添加另一个显式层,该层包含对BankAccounts.

对于方法 1,问题在于名义业务案例(访问未冻结的银行账户)是该批次中最不直观的方法名称。

使用方法 2,当我们从实体模型层子类化对象时,我们必须重写每个方法以确保它不会从底层返回对象。所以我们创建了BL_Person一个BankAccounts()返回BL_BankAccount对象集合的方法。但在这种情况下,所有这些代码似乎有点傻。

有没有比我们考虑的两个更好的方法?如果没有更好的方法,我概述的两种方法中的哪一种似乎是更好的解决方案(鉴于我们需要使用 50 多个类)?

注意:在进行网络搜索时,我确实找到了一封致 Microsoft 的公开信,标题为ADO .NET Entity Framework Vote of No Confidence,这似乎暗示没有添加明确分离关注点的好方法。

0 投票
2 回答
919 浏览

linq-to-sql - 实体框架查询与分组(多对多)

我有一个经典的多对多场景,其中包含三个表(学生、课程和第三个学生课程分配表)。

我在我的新项目中使用 EF 并且 EF 设计器没有创建第三个表。我需要选择所有课程以及分配给它的学生人数。使用纯 SQL 非常简单:

但我不知道如何将此查询转换为 Linq to SQL。请指教。

谢谢你。

0 投票
6 回答
13051 浏览

c# - 实体框架:设置外键属性

我们有一个大致如下所示的表:

所有的键都与其他表相关,但由于应用程序的分布方式,我们更容易将 ID 作为参数传递。所以我们想这样做:

我们可以在 LINQ-to-SQL 中做到这一点,但不是 EF?

0 投票
3 回答
4089 浏览

.net - ADO.NET Entity Framework 生成意外的问题 INSERT

我需要一些帮助来理解 ADO.NET 实体框架。

我正在尝试使用 ADO.NET 实体框架表示和操作 WPF TreeView 控件中的分层数据。

ADO.NET 实体框架对象与父和子 http://img14.imageshack.us/img14/7158/thingpi1.gif

这些事物中的每一个都有一个单亲和零个或多个孩子。

我的“删除”按钮...

我在调试应用程序时正在监视 SQL Server Profiler:

  1. 第一个按钮单击删除就好了。
  2. 第二个按钮单击插入一个重复的父项(但具有空的 GUID 唯一标识符主键),然后执行删除。
  3. 第三个按钮单击失败(违反 PRIMARY KEY 约束),因为它无法插入具有空 GUID 主键的另一行。

意外生成的 T-SQL 重复...

但是,它不仅仅是删除。我的“添加”按钮具有与意外插入类似的行为。它遵循相同的模式。

这让我觉得我如何将这些实体类绑定到 WPF TreeView 或我的数据模型本身存在一个更根本的问题。

这是相关的代码...

XAML...

视觉基本...

我究竟做错了什么?为什么会产生这些奇怪的插入?


更新:

我取得了突破。但是,我还是无法解释。

当我为这个问题简化代码时,我已经摆脱了原因。

而不是使用 Linq,例如:

我一直在使用 Linq,例如:

您会看到,My Thing 实体与另一个 Brand 实体相关。

ADO.NET 实体框架对象与父子和相关对象 http://img25.imageshack.us/img25/3268/thingbrandct4.gif

我认为这无关紧要,所以我没有将其包含在上面的问题中。

显然,这是在我的 Thing 表中插入意外问题的原因。

但为什么?谁能解释为什么会这样?我想更好地理解它。

0 投票
2 回答
2174 浏览

entity-framework - 从 EDM 构建 SSRS 2008

有人可以概述基于 ADO.Net 实体框架实体数据模型构建 SQL Server Reporting Services 2008 报告的过程吗?如果您知道任何示例,请指出我。谢谢!

0 投票
1 回答
2314 浏览

entity - ADO 实体框架创建不需要的实体键

我需要使用无法更改的数据库中的表(使用链接服务器)。所以我的架构的一部分是这些表的视图,我无法在我的数据库中创建 FK。

当我在 ADO.NET Entity Framework 中创建关联时,我遇到了问题,因为来自外部 DB 的表上的第二列上有一个索引,而 EF 正在为它创建一个实体键(它是记录-我认为他们只是想加快订购速度)。

当我从 EF 实体中的该列中取出实体键时,它抱怨我需要它,因为基础表上有一个键。如果我把它留在里面,我不能把它映射到 EF 的表映射中的任何东西上。

请问有谁知道我应该怎么做?

0 投票
1 回答
671 浏览

ado.net - 补充 ADO.net 实体数据模型中的实体

(玩弄 MVC 框架)我创建了一个 ADO.net 实体数据模型。现在我想用一些业务逻辑来扩展它,比如创建返回上下文子集的函数。部分类与数据模型一起创建,因此我创建了一个新文件来声明部分类,如下所示:

我在其中放置了一个名为 GetMovieById(int id) 的函数,结果如下所示:

在启动项目之前,我没有收到任何错误,然后错误是:

编译器错误消息:CS1061:“RecordStore.Models.MovieDBEntities”不包含“MovieSet”的定义,并且找不到接受“RecordStore.Models.MovieDBEntities”类型的第一个参数的扩展方法“MovieSet”(您是否缺少使用指令还是程序集引用?)

我不明白这个错误,因为部分类的另一部分包含 MovieSet。我的问题基本上是,如果这不是扩展数据模型的方式,那将是什么方式,如果是这样,我为什么会收到这个错误?