小编Vej*_*Vej的帖子

SQLAlchemy:级联删除

我必须在SQLAlchemy的级联选项中遗漏一些简单的东西,因为我无法通过简单的级联删除来正确操作 - 如果父元素被删除,子元素会持久存在,使用null外键.

我在这里提出了一个简洁的测试用例:

from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.orm import relationship

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Parent(Base):
    __tablename__ = "parent"
    id = Column(Integer, primary_key = True)

class Child(Base):
    __tablename__ = "child"
    id = Column(Integer, primary_key = True)
    parentid = Column(Integer, ForeignKey(Parent.id))
    parent = relationship(Parent, cascade = "all,delete", backref = "children")

engine = create_engine("sqlite:///:memory:")
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)

session = Session()

parent = Parent()
parent.children.append(Child()) …
Run Code Online (Sandbox Code Playgroud)

python database sqlalchemy

88
推荐指数
7
解决办法
5万
查看次数

Ruby 1.8.7中的Exponentiation返回错误的答案

我尝试在irb中计算3**557时遇到了这个问题.Ruby和MacRuby都安装在我的Mac(OS X 10.8)中.红宝石的版本是1.8.7,MacRuby 0.12(ruby 1.9.2).rib和macirb在计算3**557时给了我两个不同的答案.(macirb是对的.)

$ irb
>> 3**557
=> 54755702179342762063551440788945541007926808765326951193810107165429610423703291760740244724326099993131913104272587572918520442872536889724676586931200965615875242243330408150984753872526006744122187638040962508934109837755428764447134683114539218909666971979603

$ macirb
irb(main):001:0> 3**557
=> 57087217942658063217290581978966727348872586279944803346410228520919738045995056049600505293676159316424182057188730248707922985741467061108015301244570536546607487919981026877250949414156613856336341922395385463291076789878575326012378057561766997352898452974964563
Run Code Online (Sandbox Code Playgroud)

然后我尝试了更大的东西,例如3**5337,这次我得到了相同的答案.

那么,这是Ruby 1.8.7中的一个错误,还是我应该使用另一种方法来计算取幂?

ruby bignum exponential

8
推荐指数
1
解决办法
1074
查看次数

对DocumentDB访问密钥感到困惑

在DocumentDB下的Azure门户中,我看到两个访问密钥,即主要和辅助.

我应该使用哪个从我的应用程序调用DocumentDB,还是应该创建一个新的用户帐户?

azure azureportal azure-cosmosdb

3
推荐指数
1
解决办法
422
查看次数

在不等待ASP.NET MVC的情况下启动异步任务的两种方法之间的差异

如下所示的异步方法应在ASP.NET MVC网站中等待执行。

public async Task DoStaff()
{
    // business logic here
}
Run Code Online (Sandbox Code Playgroud)

我们找到了两种解决方案来完成此任务,并且都可以在我们的测试平台上工作:

解决方案1

public void DoStaffWrapper()
{
    DoStaff();
    // clean up
}

public ActionResult Caller()
{
    DoStaffWrapper();
    // return blah blah blah;
}
Run Code Online (Sandbox Code Playgroud)

解决方案2

public async Task DoStaffWrapperAsync()
{
    await DoStaff();
    // clean up
}

public ActionResult Caller()
{
    Task.Run(() => DoStaffWrapperAsync());
    // return blah blah blah;    
}
Run Code Online (Sandbox Code Playgroud)

那么它们之间有什么区别呢?哪个更好,为什么?有什么好处吗?

c# asp.net asp.net-mvc asynchronous async-await

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