问题标签 [navigation-properties]

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

c# - 在 C# 类中实现导航属性

我有 2 个实体,每个实体都有一个相关的 c# 类。我在表 A上设置了一个导航属性,以包含对表 B中许多项目的引用。当我创建一个新的表 A 类对象时,我需要能够在表 A中创建表 B对象的集合。如何在表 A c# 类中设置导航属性?

数据模型: http ://bluewolftech.com/mike/mike/datamodel.jpg

0 投票
1 回答
796 浏览

silverlight - 数据网格中的导航属性字段

我有一个 silverlight 项目,我需要一个数据网格来显示来自我的数据库模型的数据。为简单起见,请使用以下模型。

数据网格应显示已提交但未批准的文章。每个“文章提交”都有一个“作者”,可以通过导航属性访问。

我需要一个数据网格,其中包含来自“文章提交”和“作者”表的字段。

因此,假设我的“作者”实体正在加载到“articleSubmissionDataSource”中(似乎是)。我的绑定路径=Author.Name 是通过导航属性访问“作者”实体的正确方法吗?

顺便说一句:'articleApplicationDataSource' 是由这样的'riaControl' 在 xaml 中设置的。

此外,我注意到我的域服务的 GetArticleSubmissions 方法返回了“作者”导航属性的有效信息。但是,当我检查“LoadedDataEventArgs e”时,“作者”导航属性似乎设置为空。

这是我的域服务中的代码

文章提交的元数据

请,请,请帮助。如果您不理解我发布的大量代码,那么只需将我指向解释如何将实体和导航属性实体绑定在一起的参考资料。

此外,如果您发现任何错误的代码做法,请告诉我。我没有写任何这些,但我被赋予了让它工作的任务。我是银光的新手。

0 投票
1 回答
136 浏览

c# - 实体框架 - 在导航路径中跳过对象

我有三个基于 3 个数据库表的实体(关系下方的基数)。

我想获取学生列表并更新他们的标量属性Grade。成绩取决于学生参加的班级类型。所以我还需要每个学生的 ClassType。

这就是我所做的:

这样做的问题是 SchoolClass 被加载到上下文中,所有标量属性都填充了(+外键 ID)。

有没有办法跳过 Pupil 和 ClassType 实体之间的对象?也就是说,只加载 SchoolClass 的 ClassType 导航属性?

加载所需数量的学生,不包括是 20 毫秒,而包括是 250 毫秒。我想知道这是否可以优化?

0 投票
1 回答
405 浏览

entity-framework - EF删除具有未加载导航属性的实体

我有一个实体。Mandate. 每个任务都有一个 required:many 与 Person (NavigationProperty) 的关系。我将 DbContext API 与(LazyLoadingEnabled、AutoDetectChangesEnabled、ValidateOnSaveEnabled、ProxyCreationEnabled)一起使用

现在我想删除一个 Mandate 实体。授权实体由另一个上下文加载AsNoTracking()

现在在提交期间,我得到以下异常:Entities in 'CodeFirstContainer.Mandates' participate in the 'Mandate_Person' relationship. 0 related 'Mandate_Person_Target' were found. 1 'Mandate_Person_Target' is expected.

如果我在填充/选择期间包含 Person 属性,或者如果我访问该属性(延迟加载),则删除工作有效,但我不喜欢仅在删除情况下实现/保留许多实体,并且我不喜欢触发多个单个DELETE查询分贝!

0 投票
1 回答
156 浏览

asp.net-mvc-3 - MVC3 模型和复杂关系

假设您有以下模型:

这种架构的问题在于,AnimalColor 在技术上是 Dog 和 Cat 的导航属性,但它的复杂性使您无法使用“内置”功能,例如 AnimalColor 和 Color 之间的关系。

Dog 和 AnimalColor 之间的关系具有 TypeId 的条件,更不用说 ForeignKey 将无法正常工作,因为键名不一样(DogId 和 ObjectId)。

我的问题是:我是否完全错过了使这项工作有效的东西?如果不是,如果我想拉出以 AnimalColors 作为属性的 Dogs 列表,那么处理这种情况的最佳方法是什么?

目前,我对此唯一的解决方案是在遍历 Dogs 时拉出两个列表并获取颜色。似乎应该有一个更优雅的方式。

0 投票
1 回答
1386 浏览

entity-framework - 使用 EntityDataSource 从 GridView 的导航属性中选择所有项目

我是实体框架的新手,对此进行了研究但无济于事……尽管我可能没有足够的知识来提出正确的问题。

我有一个名为 users 的表,其中 user_ISN 作为其主键。用户可以是其他用户的朋友,所以我有一个朋友表,其中包含用户的 user_ISN 和朋友的 user_ISN ..创建多对多关系。实体框架已将此建模为与导航属性 user.friends 的自联接,这当然会将您带回用户表。

我需要创建一个 ASP.Net 网页,该网页使用网格视图仅显示当前登录用户的朋友。我为保存当前用户的 ISN 的数据源创建了一个参数。

我无法弄清楚如何只选择当前用户的朋友用户。我尝试的一切都给了我各种我不明白的错误。你能为我指出正确的方向吗?我非常愿意做额外的研究,但我什至不知道要搜索什么。

谢谢你。

0 投票
3 回答
8033 浏览

c# - 实体框架 - 包含的导航属性的选择性条件

假设我有这些简化的 EF 生成实体......

商业逻辑:

一个订单可以有多个采购订单,订单上的每个不同供应商都有一个采购订单(供应商在项目级别确定)。

如何选择性地包含子实体?

在查询 PO 时,我想自动包含 Order 和 Item 的子实体。

我做到了这一点,使用 Include()...

这完成了它的工作并撤回了相关实体,但是,我只想包括其 VendorID 与 PurchaseOrder 实体的 VendorID 匹配的 Item 实体

对于传统的 SQL,我只是将其包含在 JOIN 条件中,但 EF 在内部构建它们。

我可以使用什么 LINQ 魔法告诉 EF 应用条件,而无需手动创建实体之间的 JOIN?

0 投票
1 回答
143 浏览

c# - 如何保存与现有实体有父关系的新实体?

如果我运行下面的代码,我会遇到异常。

为了更新 AssociationSet 'x',来自 EntitySet 'x' 的相应实体必须在 ObjectStateManager 中可用。

这是我的代码。无论我是否将客户端添加到用户实体集,我仍然会收到错误消息。

我尝试先保存新实体,然后添加关系并再次保存。但它显示相同的错误消息。:(

解决!!!

我的问题在于关联。

我在 ClientUser 和 AdminUser 的两端都有 0..1 的关系。

管理员 (0..1) < --> 客户端 (0..1)

而且我已经将该管理员用户分配给另一个现有客户端。然后我尝试创建新客户端并分配该管理员并引发错误。

我通过改变如下关系来修复它

管理员 (0..1) < --> 客户端 (*)

0 投票
2 回答
9472 浏览

c# - 实体框架导航属性上的 .Skip().Take() 正在我的 SQL Server 上执行 SELECT *

我在生成的部分类上有一个方法,如下所示:

当我查看我的 SQL Server 时,我可以看到生成的代码正在执行SELECT *.* FROM Children此代码直接取自我的课程,我已验证我的 Skip/Take 的顺序在我的 .ToList 之前。

如果我删除 .ToList,那条线很快(并且没有 SQL 发送到我的数据库),但是当我尝试foreach覆盖结果时,我得到相同的 SQL 发送到我的数据库:SELECT *.* FROM Children.

使用 .Skip 和 .Take来处理我的实体的导航属性时,我需要做些什么特别的事情吗?

更新

我将尝试生成实际的 SQL,我目前还没有为此设置。我找到了第一个,因为它出现在 SSMS 的“最近昂贵的查询”列表中。

运行这个:

返回约 4,000,000 行,耗时约 25 秒。

运行这个:

返回约 4,000,000 行,耗时约 25 秒。

正如我所说,我将获取为这些生成的 SQL 并将它们摆出来。

0 投票
2 回答
2404 浏览

.net - 实体框架导航属性接口类型

我正在使用实体框架代码优先创建一个应用程序,并且在遵循接口隔离原则的同时,我面临着一些 EF 限制的问题。 UML 中的应用程序模型架构的一部分

问题是 Processes 和 Lines 属性导致它无法确定具体类型中的哪个类(我想)。

我知道我可以通过使用抽象类来实现几乎相同的效果。我之所以没有这样做,是因为我发现由于 EF 限制而更改模型是错误的。

解决这个问题的最佳方法是什么?任何允许接口作为导航属性的 EF 替代方案。