问题标签 [self-reference]
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.
c# - 链式方法调用中的自引用对象
您如何在同一方法的参数中引用链接方法的对象。假设您有许多链接方法调用来修剪/子串一个字符串,如下所示:
问题是,由于字符串的长度现在未知并且与原始字符串的长度不同,我如何像上次调用那样子字符串(索引和长度可能取决于字符串本身的子字符串)。
谢谢!
entity-framework - EF STE 和自引用表的问题
这是我在这里的第一篇文章,所以我希望一切都好。
这是我的问题:我的数据库中有一个名为UserTypes的表。它有:
- ID;
- 是私人的;
- 父ID;
相关的是第一个和第三个。我有另一个名为UserTypes_T的表,其中包含不同类型的信息,即特定于语言的信息。这些字段是:
- 语言_ID;
- 用户类型_ID;
- 姓名;
我想要实现的是从UserTypes表中加载整个层次结构并将其显示在 TreeView 中(这目前不相关)。然后,通过选择一些用户类型,我可以在单独的编辑框(名称)和组合框(父级)中编辑它们。
一切正常,直到我尝试将更改保留在数据库中。EF 为我生成了这些表的两个实体类:
用户类型的类有:
- ID;
- 是私人的;
- 父ID;
- 自引用的导航属性(0..1);
- 子元素的导航属性;
- UserTypes_T 表的另一个导航属性 (1..*);
翻译信息的类有:
- 用户类型_ID;
- 语言_ID;
- 姓名;
- UserTypes 表的导航属性 (*..1);
- 语言表的导航属性 (*..1);
我得到我需要使用的数据:
在我的 WCF Web 服务中。我可以毫无问题地添加新的用户类型,但是当我尝试更新旧的用户类型时,会发生一些奇怪的事情。
如果我更新根元素(Parent_ID==null)一切正常!如果我更新 Parent_ID!=null 的元素,我会收到以下错误:
AcceptChanges 无法继续,因为对象的键值与 ObjectStateManager 中的另一个对象冲突。
我在整个互联网上搜索并阅读了Diego B Vega(以及更多)的博客文章,但我的问题有所不同。当我更改父用户类型时,我实际上更改了 Parent_ID 属性,而不是导航属性。我总是尝试使用 ID,而不是生成的导航属性以避免出现问题。
我做了一些研究,试图看看我得到的对象图是什么,发现有很多重复的实体:
根元素有一个其子元素的列表。每个子元素都有一个对根或其父元素的反向引用,依此类推。你可以想象。由于我没有使用那些导航属性,因为我使用 ID 来获取/设置我需要的数据,所以我从模型中删除了它们。具体来说,我从UserTypes实体类中删除了第 4点和第 5点。然后我有一个每个元素只有一次的对象图。我尝试了一个新的更新,但我遇到了同样的问题:
根元素更新得很好,但是有一些父元素的元素抛出了同样的异常。
我看到我在UserTypes_T实体类中有一个导航属性,指向一个用户类型,所以我也删除了它。然后这个错误消失了。对象图中的所有项目都是唯一的。但是问题仍然存在 - 我可以毫无问题地更新我的根元素,但是当尝试更新子元素(没有排除)时,我在生成的 Model.Context.Extensions 类中得到了一个空引用异常:
我尝试仅更新名称(在UserTypes_T中),但错误是相同的。
我没有想法,我已经尝试解决这个问题 8 个小时了,所以如果有人给我想法或分享他们的经验,我将不胜感激。
PS:
我成功更新子对象的唯一方法是使用以下代码检索数据:
其中UserType1是导航属性,指向父用户类型,而UserTypes1是导航属性,包含子元素的列表。这里的问题是 EF “修复”对象并将Parent_ID更改为null。如果我再次设置它,EF 也会设置UserTypes1 ......也许有办法阻止这种行为?
sql - 具有双向自引用关联的类方法问题
我正在尝试创建一个应用程序,其中用户('current_user')对其他两个用户('user1'和'user2')之间的兼容性进行评分。他们可以对兼容性进行正面或负面评价:给两个用户评分“兼容”会创建两个相同类别的资源(一个“positive_connection”和一个“inverse_positive_connection” - 用于双向性),并且给他们评分“不兼容”也会创建两个资源('negative_connection '和'inverse_negative_connection')。所以有positive_connection、negative_connection和user的模型。
每个评级资源都属于创建它的用户,也属于它连接的用户。拥有正面和负面的评级很重要。
这是我的问题:在每个用户(@user
)页面上,我想显示单独的列表:
是
overall_positively_connected_to(@user)
(即positive_connections.count > negative_ratings.count
)的用户,并且是
overall_negatively_connected_to(@user)
(即negative_connections.count > positive_ratings.count
)的用户。
我似乎无法做的是编写一个类方法,只提取那些被网络评为“兼容”或“不兼容”的用户
通过阅读 Michael Hartl 的 rails 教程(我对这一切完全陌生),我认为我需要在 User 模型中编写类似这样的内容:
编辑
从完全不了解 SQL 查询开始,我编写了这两个类方法来查找与@user 负相关和正相关的用户(分别):
但这并没有多大帮助。我需要的是一种获取用户的方法overall_positively_connected_to(user)
。我认为该方法将涉及两个连接,并且是这样的:
但是在这里我完全卡住了:这显然是不对的。我在任何地方都找不到其他类似的例子......
任何关于这方面的帮助都会很棒,因为我对 SQL 查询一无所知。如果需要更多代码,请告诉我。提前致谢!
ruby-on-rails - 控制器计数关系中的自引用查找
为了在用户的“显示”页面上显示这些记录,我很难提取一组与用户自引用相关的记录。
这是想法:
用户 ( ) 对其他两个用户 (和)current_user
之间的兼容性进行评分。他们可以对兼容性进行正面或负面评价:将两个用户评为“兼容”会在 user_a 和 user_b 之间创建 a,将他们评为“不兼容”会创建一个. 所以有positive_connection、negative_connection和user的模型。user_a
user_b
positive_connection
negative_connection
现在我只需要显示那些overall_positively_connected_to(@user)
(即 where positive_connections_to(@user).count > negative_connections_to(@user).count)
.
这是我必须去的地方,但我不能再进一步了:
用户型号:
控制器
控制器中的代码显然是错误的,但我应该怎么做呢?我对rails(和sql)完全陌生,所以可能做了一些天真的事情。
任何帮助都会很棒。
excel - 工作表函数中单元格、列和行的自引用
在 Excel 的工作表函数中,如何自引用所在的单元格、列或行?
haskell - Haskell 函数中的自引用
我正在学习 Haskell,我在Haskell Wiki上的以下表达 真的让我感到困惑:
我不太明白为什么会这样。
如果我应用标准 Currying 逻辑(zipWith (+))
,则返回一个将列表作为参数的函数,然后返回另一个将另一个列表作为参数的函数,并返回一个列表 ( zipWith::(a -> b -> c) -> [a] -> [b] -> [c]
)。因此,fibs
是对列表(尚未评估)的引用,并且(tail fibs)
是相同(未评估)列表的尾部。当我们尝试计算 ( take 10 fibs
) 时,前两个元素绑定到0
和1
。换句话说fibs==[0,1,?,?...]
,和(tail fibs)==[1,?,?,?]
。第一次加法完成fibs
后就变成了[0,1,0+1,?,..]
。同样,在第二次加法之后,我们得到[0,1,0+1,1+(0+1),?,?..]
- 我的逻辑正确吗?
- 有没有更简单的方法来解释这一点?(知道 Haskell 编译器对此代码做了什么的人的任何见解?)(欢迎链接和参考)
- 确实这种类型的代码只是因为惰性求值才有效吗?
- 当我这样做时会发生什么评估
fibs !! 4
? - 这段代码是否假设 zipWith 从前到后处理元素?(我认为不应该,但我不明白为什么不)
EDIT2:我刚刚发现上面的问题在这里得到了很好的回答。如果我浪费了任何人的时间,我很抱歉。
编辑:这是一个更难理解的案例(来源:Project Euler 论坛):
请注意,all (\y -> x mod y /= 0)...
这里如何引用 x 不会导致无限递归?
entity-framework - Entity Framework 4.1 Code First 自引用一对多和多对多关联
我有一个用户可以收集他喜欢的用户...
另一个用户可以拥有他喜欢的用户集合......
如果用户 A 喜欢用户 B,如果用户 B 喜欢用户 A,那么他们就可以出去玩。我需要互相发送他们的联系信息。我们如何在 Entity Framework Code First 中表示这样的模型?
这个模型正确吗?我不能让它工作。
我尝试了另一种方法,但这也不起作用......
我试图将用户集合添加到用户表中。
例如:
当我尝试添加用户和他们喜欢的人时出现此错误:
已检测到对关系“UserLike_LikeUser”的角色“UserLike_LikeUser_Target”的冲突更改。
代表这种模型的最佳方式是什么?
ruby-on-rails - Rails 自我参照 has_many :通过 - 我不知道我做错了什么,但这是不对的 :)
我正在尝试建立一个自我参照关系,如这段精彩的视频中所述 - http://railscasts.com/episodes/163-self-referential-association - 它主要是有效的,但并不完全有效。
我有这些实体: 用户,可以是导师或被指导者;匹配项,有一个mentor_id(user.id)、mentee_id(user.id)和status_id;和状态,这是一个简单的查找表。
我的用户模型如下所示:
我的状态模型如下所示:
我的 Match 模型如下所示:
当我放置 user.mentors时,我得到SQLite3::SQLException: no such column: matches.user_id: SELECT "users".* FROM "users" INNER JOIN "matches" ON "users".id = "matches".mentor_id WHERE ( (“匹配”.user_id = 1))
简单地说,我希望做user.matches.find(1).status.id .. 关于我做错了什么的任何想法?
提前致谢。乔恩
mysql - 如何使用 Propel ORM 在 Symfony 中构建自引用表
我在尝试使用 Propel ORM 从 symfony 项目中的现有数据库构建模型时出错。
错误是这样的:
build-propel.xml:474:20:双向定义外键a_table_on_my_schema_FK_1表示的1:1关系;Propel 目前不支持此功能(如果您必须同时拥有两个外键约束,请考虑使用自定义 SQL 文件添加此约束。)
schema.yml 文件非常广泛,但导致错误的表的描述(第一个未正确创建)是这样的:
我认为这个错误是因为自引用表。
我需要在许多元素之间实现一个不规则的关系,所以这个实现是一个很好的方法。但是导致我在施工时出现这个问题。
你能给我一些线索吗?有人有这个错误吗?你会怎么做?
谢谢你!!:D
ruby-on-rails-3 - Rails:从单个表单创建自引用模型的多个记录
我有一个自我参考的销售模式。销售对象可以表示“独立”的产品销售、产品集合的销售或集合内产品的销售:
set_sale_id 引用集合销售的父记录:
我想通过这样一个表单提交多个产品并设置销售额:
问题是如何以最佳方式使用 <%= f.fields_for ... %> 进行嵌套记录?
控制器端如何处理提交的记录?