问题标签 [navigational-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 回答
70 浏览

c# - 使用导航属性“添加”相关项目是否很慢?

我有一个Device其他的列表DeviceLogEntrydevice.Logs是一个导航属性,我目前像这样添加新日志

日志是这样定义的

Logs我的问题是这会在添加新表之前加载整个表吗?如果是这样(这会很慢,因为日志包含很多条目)。什么是更好(更快)的选择?

0 投票
0 回答
463 浏览

entity-framework - 实体框架 - 仅从多个导航属性中检索特定列

我有一个项目实体,它具有导航属性 ProjectNumbers、Addresses、Contacts 和 BBLInfos。我试图只选择每个导航属性的某些字段并将它们存储在视图模型中。

视图模型如下所示:

对项目 DbSet 调用 .Include 不起作用,因为它包含整个相关实体。

我能够通过分别对每个相关表进行查询并选择其 ProjectId 与项目匹配的实体来使其工作,但这需要 4 个单独的表查询。有没有更有效的方法来获取相关实体,而只从相关实体中选择几列?

这就是我目前正在做的事情:

然后 ViewModelSelector 只选择需要的字段:

ViewModelSelector 函数是这样的,所以我只需要编写一次 linq 查询的“.select”部分,然后我就可以重用它们。内部 ViewModelSelector 方法仅选择特定字段,如下所示:

谢谢!

0 投票
2 回答
219 浏览

c# - 在创建时分配实体框架代码优先导航属性

假设我们有这两个类:

假设我使用以下方法创建每个:

这些方法中的任何一个都会创建具有适当分配外键的父对象和子对象吗?我的直觉告诉我 CreateParent 会起作用,但 CreateChild 不会。

谢谢!

0 投票
0 回答
58 浏览

c# - 实体框架导航属性也作为表格?

我首先在 EF6 中使用数据库,假设我有一个名为Article( ArticleID, title, text) 的表,其articleID作为主键。

然后我添加了一个名为RelatedArticle( ArticleID, RelatedArticleID) 的表,主键是 articleid 和 relatedarticleid,外键返回到文章中。

我遇到的问题是,当我将其拉入 edmx 文件时,它设置RelatedArticles为文章的导航属性,因此当我去删除时,它只会拉出我要删除的文章relatedarticles所在的位置。正如你可以想象的那样,我需要能够说articleidid

删除 articleid 或相关 articleid 是我要删除的当前文章 id 的任何记录。

或者我得到很大的 ole FK 约束错误。

通常,当这种情况发生时,我至少有一个脱离上下文的“表”,我可以手动查询并杀死我需要的东西。(例如:

但就像我说的那样,它只将相关文章作为文章本身的导航属性引入。

想法?

0 投票
1 回答
1909 浏览

c# - 在实体上显式加载多个引用/集合

考虑以下实体模型:

在我的代码中,我加载了Parent实体:

要显式加载其导航属性,我使用

但这会导致两个数据库查询。

问题:有没有更优雅的方式,允许在单个查询中显式加载多个导航属性?

如果我没有parent加载,我会做急切加载:

但是,正如我所提到的,我已经在没有相关实体的情况下加载了它(并且我无法修改加载代码)。

0 投票
0 回答
64 浏览

json - EF用导航属性序列化对象

我正在创建一个API,我需要将数据模型发送到客户端,以便于处理,所以我也不需要在客户端实现和维护json结构,只需序列化一个新的空对象,并且把它交给客户。

但是我的问题来了,如果导航属性对象为空,它会被序列化为一个空数组

[]

不是数组中的对象。
所以我的问题是,谁能指出我正确的方向,用相关属性序列化对象,比如招摇文档是如何做到的?

MVC 中的基本序列化示例:http: //pastebin.com/ihF2AeKY

使用 nav 道具和类型通过 swagger 进行序列化的示例:http: //pastebin.com/SxxztnDa

现在,我可以实例化 nav 道具,并将其添加到对象中,然后对其进行序列化,但这很笨拙,并且不会像 swagger 示例那样自动跟踪对象的更改。

编辑:

这将是理想的,因为如果我更改基础对象或道具关系,模型将自动跟随,但由于新对象中的属性为空,除非我手动填充它,否则导航道具将为空,或像“[]”这样的空列表,如基本示例中所示,所以我不会得到导航道具“方案”,只是基本对象。Swagger 在这里做了某种魔术,以构建完整的树,如第二个 pastebin 所示。

这是一种工作,但很笨拙,因为我需要手动插入道具,但这将返回正确的模型,并带有填充但为空的导航道具。

这是我手工制作的 new() 样板的输出:http: //pastebin.com/C4W6Tvsg 如您所见,它包含导航属性的空对象,有点像 EF 为我返回它的方式,所以我可以只需将其发送给客户端,并使用 Angular 处理它,即使我向其添加新属性或字段。

所以最后,问题是我如何遍历对象图,并从中创建一个模式,有点像我渴望加载它,但使用空对象。

希望像这样更清楚一点。

0 投票
0 回答
41 浏览

c# - ASP.NET MVC。Code First Parent 导航属性未自动填充

鉴于这些 POCO 类

将其发布并绑定到控制器时,一切都设置好了,我将所有 SubItems 状态设置为:

但是,modelState 包含每个项目的“父级不能为空”错误。并且验证失败。由于某种原因,“父”属性不会自动填充。我怎样才能避免它?

我正在渲染这样的视图。

SubItem 在哪里休耕EditorTemplate

并且[Required] parent由于级联删除而需要。

没有[Required]一切都很好。并且在保存 db 时添加 parent 属性。但是,级联删除在迁移时关闭。

0 投票
1 回答
64 浏览

c# - 联接不包含关系的表

我有以下数据库:

在此处输入图像描述

  1. 表消息:

    • 负责存储发送的消息做不同的电子邮件地址。
  2. 表电子邮件:

    • 只负责存储电子邮件地址(主键 = 电子邮件)(toEmail 与表电子邮件有关系)(Sotres Foo@gmail.com、Foo2@gmail.com 等...)
  3. 表联系人:

    • 用于存储用户的联系人。(商店马克、约翰、汤姆等……)
  4. 表联系人电子邮件

    • 需要此表,因为一个联系人可能有多个电子邮件地址。(存储在表 Emails 中找到的 id)

无论如何这里是一个问题: 我想创建一个查询,它将选择在特定日期发送的所有消息。如果存在,我想在查询中包含联系人姓名。我已经创建了以下查询,但速度很慢:

为了使我的查询执行得更快,我是否需要将所有联系人存储在字典中并将此查询分成 2 个查询?

将所有联系人存储在字典中将使事情变得更加高效。但是从数据库中检索我不需要大部分联系人的所有联系人让我觉得我在浪费资源。

0 投票
1 回答
53 浏览

android - 无法在自定义导航抽屉中设置按钮的文本

我制作了一个带有 3 个按钮的自定义导航抽屉,我想根据它们关联的活动更改按钮上的文本。因此,当我使用 LayoutInflater 制作导航抽屉布局的 Java 对象并使用该布局对象上的 findViewById 获取每个按钮的句柄时,我设置了每个按钮的文本,但是当我运行应用程序时,文本不会出现(在 XML 中我没有为按钮设置任何文本)。休息一切正常。

涉及此抽屉的主要活动(onCreate()方法内部)中的代码部分在这里

0 投票
0 回答
42 浏览

c# - 试图理解实体框架(核心)中的导航属性

我有一个关于 EF Core 中的导航属性的问题,我似乎无法弄清楚。如果我有一张桌子和一张相关的桌子:

现在我用 C# 实现它的模型

这是一个正确的实现吗?具体来说,我想知道如果我遗漏会发生什么

从人表?那会有什么不同吗?另外,如果我将以下内容添加到 Role 类中,会有什么不同:

这如何改变事情?

谢谢