我有一个包含三个表的数据库: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执行此操作,但必须使用单个查询来执行此操作的更简单,资源更少的方法.
有人可以解释一下吗?
>>> 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)
什么是 [...]?
我正在使用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)
到目前为止我所读到的解决方案是:
使用ScriptIgnoreAttribute在
System.Web.Script.Serialization上引用的属性-我真的不希望这样做,因为我不想在我的POCO项目中添加引用的System.Web
禁用EF 4.1 DbContext中的延迟加载 - 我不确定是否要使用"包含彻底的项目"
返回匿名类型 - 当我的项目变大时,我会遇到这种方法的问题吗?
使用ViewModel - 假设我有一个可以拥有一部或多部手机的客户.在第一个下拉列表中,您可以选择客户,在第二个下拉列表中显示他的所有手机.
但是这不会在我的Phones对象上生成循环异常吗?或者我会为我的Phone对象制作一个特殊类?这似乎是很多不必要的代码.
使用AutoMapper - 没有使用AutoMapper的经验,所以我不知道它有多复杂.
你会投票给谁,为什么?
.net json circular-reference entity-framework-4.1 asp.net-mvc-3
我正在使用ASP.NET MVC 3的库(Telerik).
我的所有功能都有问题,需要通过AJAX返回一些数据:
我正在使用EF4来连接我的数据库,而且我(并且需要)两种方式的导航属性(想象一下,有一些帖子和一个帖子的用户都有用户).
问题是该库正在使用JavaScriptSerializer,它使用JSON对数据进行编码.
我得到的错误
序列化"System.Data.Entity.DynamicProxies.Employee_34048F4F6A98297F826C798A27640C7383E95E8EA8282EC8A5F738FA0C77CBC3"类型的对象时检测到循环引用."
异常,这是正确的,因为父级引用了它的子级,而子级引用了它的父级.
我已经找到了一些解决方法,但没有什么能完全满足我:
我和WCF几乎有同样的问题,我创建了一个知道处理循环引用的序列化,我们可以在这里做同样的事吗?或者有办法管理这个吗?
如果没有,我想最好的方法是使用"ViewModel",但有没有办法加速这些创作?像一个泛型对象,它接受构造函数EF对象并删除循环引用?还要别的吗?
非常感谢你
.net serialization entity-framework circular-reference javascriptserializer
我需要开发下一个图表类:
我写了代码,但是,有循环单元引用的问题.
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) 我正在尝试将带有循环引用的对象从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 ?
我有这个带有嵌套闭包的例子,它演示了内存泄漏
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) 当我用静态字符串替换字符串文字时,一个愚蠢但可能不那么罕见的错误导致类似下面的代码片段,即使对于一台机器,这可能几乎从来没有意图和微不足道.
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为什么不呢?
S在最终执行初始化时,在显式初始化之前将值设置为其默认值状态,即null; 但几乎可以肯定是编码错误. 我有这个真的如下破解代码将删除任何类型的数据结构的建造出来的循环引用dict,tuple和list对象.
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) 考虑以下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 …