标签: circular-reference

圆形比赛

我有一个包含三个表的数据库:userid_tbl,need_tbl,have_tbl

create table userid_tbl
(user_id varchar2(15) not null primary key);

create table need_tbl
(user_id varchar2(15) not null,
have_item varchar2(100) not null,
foreign key (user_id) references userid_tbl (user_id)
);

create table have_tbl
(user_id varchar2(15) not null,
have_item varchar2(100) not null,
foreign key (user_id) references userid_tbl (user_id)
);
Run Code Online (Sandbox Code Playgroud)

每个用户都可以创建无限数量的他们可以提供给数据库中其他人的需求或服务的记录.这些项目来自预定的清单.

在对需求和表进行连接之后,我已经满足了需求和需求,并丢弃了在以下视图中任何用户无法满足的请求:

Item:         Need:            Have:
1             Bob              George
2             George           Herbie
3             Herbie           Bob
4             Larry            Wally
5             Wally            Larry
6             John             George
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试编写一个查询,在那里我可以计算满足所请求需求的每个用户的排列数.例如,在上面的例子中,鲍勃,乔治和赫比可以一起满足彼此的需要,拉里和沃利也可以,但约翰不能,所以总数将是2.

我首先开始使用LOOP执行此操作,但必须使用单个查询来执行此操作的更简单,资源更少的方法.

sql oracle algorithm circular-reference

4
推荐指数
1
解决办法
395
查看次数

带有python列表的循环引用

有人可以解释一下吗?

>>> x=x[0]=[0]
>>> x
[[...]]
>>> x is x[0]
True
>>> x[0][0][0][0][0][0][0]
[[...]]
>>> x in x
True
Run Code Online (Sandbox Code Playgroud)

什么是 [...]?

python list circular-reference

4
推荐指数
1
解决办法
1090
查看次数

EF 4.1 + MVC + JSON循环引用异常的最佳解决方案?

我正在使用EF 4.1 Database First方法,T4模板在单独的程序集中生成我的POCO类.我有用于获取数据的存储库,以及用于与UI通信的服务层.

我试图制作级联下拉列表.我是MVC和EF 4.1的新手,因此我搜索了stackoverflow以寻找可能的解决方案.

这是示例viewmodel类:

public class MyViewModel
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
public IEnumerable<Phone> Phones { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我所读到的解决方案是:

  1. 使用ScriptIgnoreAttributeSystem.Web.Script.Serialization上引用的属性-我真的不希望这样做,因为我不想在我的POCO项目中添加引用的System.Web

  2. 禁用EF 4.1 DbContext中的延迟加载 - 我不确定是否要使用"包含彻底的项目"

  3. 返回匿名类型 - 当我的项目变大时,我会遇到这种方法的问题吗?

  4. 使用ViewModel - 假设我有一个可以拥有一部或多部手机的客户.在第一个下拉列表中,您可以选择客户,在第二个下拉列表中显示他的所有手机.
    但是这不会在我的Phones对象上生成循环异常吗?或者我会为我的Phone对象制作一个特殊类?这似乎是很多不必要的代码.

  5. 使用AutoMapper - 没有使用AutoMapper的经验,所以我不知道它有多复杂.

你会投票给谁,为什么?

.net json circular-reference entity-framework-4.1 asp.net-mvc-3

4
推荐指数
1
解决办法
1429
查看次数

如何序列化EF POCO自动生成的对象以避免循环引用?

我正在使用ASP.NET MVC 3的库(Telerik).

我的所有功能都有问题,需要通过AJAX返回一些数据:

我正在使用EF4来连接我的数据库,而且我(并且需要)两种方式的导航属性(想象一下,有一些帖子和一个帖子的用户都有用户).

问题是该库正在使用JavaScriptSerializer,它使用JSON对数据进行编码.

我得到的错误

序列化"System.Data.Entity.DynamicProxies.Employee_34048F4F6A98297F826C798A27640C7383E95E8EA8282EC8A5F738FA0C77CBC3"类型的对象时检测到循环引用."

异常,这是正确的,因为父级引用了它的子级,而子级引用了它的父级.

我已经找到了一些解决方法,但没有什么能完全满足我:

  • 使用数据服务器绑定:不能,函数必须在ajax中工作(它是网格的寻呼机,当页面滚动到最后时加载下一个元素)
  • 使用匿名对象:不灵活,因为如果我在数据库中另外添加一个字段,我必须将它添加到我的所有匿名对象中,此外,如果我需要一个我想要的子集合,那就很无聊还为该子列表的所有元素创建对象.
  • 使用ViewModel:几乎相同的问题,如果我还有一个字段,我必须在所有viewModel上添加这些字段,并且我要为我的所有60个视图创建一个视图模型,其字段与我的模型完全相同,...
  • 使用NonSerializedAttribute:我不知道如何放入生成我的POCO对象的T4模板,我不确定它是否有效:有时主要对象是子对象,有时它是父对象,空关系必须是另一个.

我和WCF几乎有同样的问题,我创建了一个知道处理循环引用的序列化,我们可以在这里做同样的事吗?或者有办法管理这个吗?

如果没有,我想最好的方法是使用"ViewModel",但有没有办法加速这些创作?像一个泛型对象,它接受构造函数EF对象并删除循环引用?还要别的吗?

非常感谢你

.net serialization entity-framework circular-reference javascriptserializer

4
推荐指数
1
解决办法
1490
查看次数

上课之间的循环引用

我需要开发下一个图表类: 在此输入图像描述
我写了代码,但是,有循环单元引用的问题.

XmlFileManager类包含:

unit XmlFileManager;
interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlEnpManager;
type
  TXmlFileManager = class
  private
    [...]
    xmEnp: TXmlEnpManager;
    xmEnpInicial: TXmlEnpManager;
    xmEnpFinal: TXmlEnpManager;
[...]
end.
Run Code Online (Sandbox Code Playgroud)

抽象类,XmlNodeManager:

unit XmlNodeManager;
interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlFileManager;
type
  TXmlNodeManager = class
   protected
        { sgy alias para strategy }
        sgyIterator: Integer;
        sgyContext: TXmlFileManager;
        sgyAttributes: TStringList;
        sgyNode: IXMLNode;
[...]
end.
Run Code Online (Sandbox Code Playgroud)

和XmlEnpManager具体类:

unit XmlEnpManager;
interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlNodeManager;
type …
Run Code Online (Sandbox Code Playgroud)

delphi oop circular-reference

4
推荐指数
1
解决办法
2125
查看次数

将具有循环引用的对象从服务器传递到客户端Javascript,同时保留循环

我正在尝试将带有循环引用的对象从node.js服务器传递到客户端javascript.

服务器(node.js):

var object = { circular: object }
//....
app.get('/', function(req, res){    
    res.render('index.jade', {object: object});
});
Run Code Online (Sandbox Code Playgroud)

客户端Jade/Javascript

script var object = !{JSON.stringify(object)};
Run Code Online (Sandbox Code Playgroud)

在这里,我得到object包含循环引用的错误.

没有 循环引用的任何方式来获取object客户端javascript ?

javascript circular-reference node.js express pug

4
推荐指数
1
解决办法
5492
查看次数

嵌套闭包和捕获的变量

我有这个带有嵌套闭包的例子,它演示了内存泄漏

use v5.10;
use strict;

package Awesome;

sub new {
    bless {steps => [], surprise => undef}, shift;
}

sub say {
    print "awesome: ", $_[1], "\n";
}

sub prepare {
    my ($self, @steps) = @_;

    for my $s (@steps) {
        push @{$self->{steps}}, sub {
            $self->say($s);

            if ($s eq 'pony') {
                $self->{surprise} = sub {
                    $s;
                }
            }
        };
    }
}

sub make {
    my $self = shift;

    while (my $step = shift @{$self->{steps}}) {
        $step->();
    }

    if ($self->{surprise}) { …
Run Code Online (Sandbox Code Playgroud)

perl closures memory-leaks circular-reference

4
推荐指数
1
解决办法
273
查看次数

为什么Visual Studio没有警告静态字符串的循环初始化?

当我用静态字符串替换字符串文字时,一个愚蠢但可能不那么罕见的错误导致类似下面的代码片段,即使对于一台机器,这可能几乎从来没有意图和微不足道.

public partial class T { static string S = S; }
Run Code Online (Sandbox Code Playgroud)

这不会触发VS Professional 2013,.NET Framework 4.6.0.1055,警告级别4的诊断.1为什么不呢?


1为了公平对待编译器,我假设初始化是很好定义的,并且S在最终执行初始化时,在显式初始化之前将值设置为其默认值状态,即null; 但几乎可以肯定是编码错误.

c# static initialization circular-reference visual-studio

4
推荐指数
1
解决办法
89
查看次数

删除dicts,lists,tuples中的循环引用

我有这个真的如下破解代码将删除任何类型的数据结构的建造出来的循环引用dict,tuplelist对象.

import ast

def remove_circular_refs(o):
    return ast.literal_eval(str(o).replace("{...}", 'None'))
Run Code Online (Sandbox Code Playgroud)

但我不喜欢它有多酷.这可以在不将数据结构转换为字符串表示的情况下完成吗?

这是一个用于测试的示例结构:

doc1 = {
    "key": "value",
    "type": "test1",
}
doc1["self"] = doc1
doc = {
    'tags': 'Stackoverflow python question',
    'type': 'Stackoverflow python question',
}
doc2 = {
    'value': 2,
    'id': 2,
}
remove_circular_refs(doc)
remove_circular_refs(doc1)
remove_circular_refs(doc2)
Run Code Online (Sandbox Code Playgroud)

python reference circular-reference

4
推荐指数
1
解决办法
610
查看次数

如果__hash__被覆盖,则Pickle / dill无法处理循环引用

考虑以下MWE:

#import dill as pickle      # Dill exhibits similar behavior
import pickle

class B:
    def __init__(self):
        self.links = set()

class A:
    def __init__(self, base: B):
        self.base = base
        base.links.add(self)

    def __hash__(self):
        return hash(self.base)

    def __eq__(self, other):
        return self.base == other.base

pickled = pickle.dumps(A(B()))  # Success
print(pickle.loads(pickled))    # Not so much
Run Code Online (Sandbox Code Playgroud)

上面的示例失败,但有以下异常:

Traceback (most recent call last):
  File "./mwe.py", line 26, in <module>
    print(pickle.loads(pickled))
  File "./mwe.py", line 18, in __hash__
    return hash(self.base)
AttributeError: 'A' object has no attribute 'base'
Run Code Online (Sandbox Code Playgroud)

据我了解的问题,pickle在反序列化B.links …

python serialization pickle circular-reference dill

4
推荐指数
1
解决办法
428
查看次数