是否有任何聪明的方法可以避免在以下情况下使用IN子句进行代价高昂的查询?
我正在使用Google App Engine构建Facebook应用程序,并且在某些时候我(显然)需要查询数据存储区以获取属于给定用户的任何facebook朋友的所有实体.
假设我有几个实体建模:
class Thing(db.Model):
owner = db.ReferenceProperty(reference_class=User, required=True)
owner_id = db.StringProperty(required=True)
...
Run Code Online (Sandbox Code Playgroud)
和
class User(db.Model):
id = db.StringProperty(required=True)
...
Run Code Online (Sandbox Code Playgroud)
在某些时候,我查询Facebook以获取给定用户的朋友列表,我需要执行以下查询
# get all Thing instances that belong to friends
query = Thing.all()
query.filter('owner_id IN', friend_ids)
Run Code Online (Sandbox Code Playgroud)
如果我这样做,AppEngine将为每个id执行子查询friend_ids,可能超过任何查询可以生成的子查询的最大数量(30).
有没有更好的方法来做到这一点(即最小化查询数量)?我知道使用数据存储区没有任何关系和连接,但是,特别是,如果它有助于使事情变得更容易,我会考虑向User或Thing类添加新字段.
哪些不仅仅是功能性的语言具有代数数据类型(或类似的东西)和模式匹配?我也对多范式语言感兴趣 - 我知道Ocaml和F#是添加了OO的ML方言,因此它们继承了ML的代数数据类型.
它们可以使用enums和unions 进行模拟(如C,C++,...更多?),但这很快变得麻烦和丑陋,如果你在模式匹配中忘记了一个案例,编译器就无法发出警告或者(更可行,更危险)当以"错误的方式"访问联合时,即,Left当它实际上是一个值时,你要求一个值的字段Right(你得到的是对碰巧发生的那些位的无意义的重新解释)在那里).
我听说Pascal有类似标记的联合,而Cyclone语言也支持标记的联合.维基百科还提到了阿达和阿尔戈尔.还有其他语言吗?
(如果您从未听说过代数数据类型,您可以阅读函数式语言中"什么是'模式匹配'的答案?"以获得精彩的介绍.
language-agnostic programming-languages functional-programming algebraic-data-types
我真的不知道该怎么做。我创建了一个通用类来为我的应用程序打开报告。报告包含在另一个未作为嵌入式资源引用的 DLL 中。
如果我引用 DLL,我可以这样做:
Viewer.LocalReport.ReportEmbeddedResource = "SomeLibrary.ReportName.rdlc";
但是,由于我没有引用 DLL,因此我认为我必须通过反射获取报告。这就是我被困的地方。我真的不知道该怎么做。
我有一个第三方DLL,我需要在我的应用程序中使用.我的项目是用SNK签名的,因此我不能在不签名的情况下使用这些未签名的DLL.
我尝试使用ildasm.exe,如此处所解释,但我在尝试签署DLL时收到错误消息,因为DLL包含非托管代码.我得到的错误消息是"生成的PE文件不可用"(DLL使用P/Invoke调用).
我能在这做什么想法?
在我的应用程序中,我有绑定到TextBoxes的数字(double或int)ViewModel属性.ViewModel实现IDataErrorInfo以检查输入的值是否落在"业务逻辑"的可接受范围内(例如,高度不能为负值).我每页都有一些TextBox,并且有一个按钮(在向导中称为"next"),启用属性绑定到ViewModel布尔值,该布尔值指定整个页面上是否有任何错误.根据我编写的IDataErrorInfo规则,使用有效/无效值正确更新按钮的启用/禁用状态.
但是,由于输入值没有转换(即"12bd39"不是有效的双精度),因此无法让我的viewmodel知道何时抛出异常,因此在转换异常的情况下我的'next'按钮尽管输入错误,仍会保持启用 然而,由于我的绑定,GUI正确地反映了装饰者的错误:
<TextBox Text="{Binding Temperature, Mode=TwoWay, ValidatesOnExceptions=True, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"/>
Run Code Online (Sandbox Code Playgroud)
如何让视图知道发生了'ValidatesOnExceptions'样式错误.Josh Smith在这里的看法似乎依赖于使每个ViewModel属性成为一个字符串并滚动自己的异常检查,这似乎是很多额外的工作.我还开始寻找卡尔Shifflett的实现在这里,但我似乎无法捕捉到的路由事件把这个代码到视图的代码隐藏文件时,我会想到:
public ViewClass()
{
this.InitializeComponent();
this.AddHandler(System.Windows.Controls.Validation.ErrorEvent, new RoutedEventHandler(ValidationErrorHandler));
}
private void ValidationErrorHandler(object sender, RoutedEventArgs e)
{
var blah = e as System.Windows.Controls.ValidationErrorEventArgs;
if (blah.Action == ValidationErrorEventAction.Added)
{
}
else if (blah.Action == ValidationErrorEventAction.Removed)
{
}
}
Run Code Online (Sandbox Code Playgroud)
Silverlight似乎也有一个你可以订阅的事件,但我找不到WPF(3.5)中的确切等价物.任何帮助表示赞赏!
private void doShareEmp(pageBean UTIL, HttpServletRequest request, String page)
throws Exception
{
doAction(request, UTIL, page);
String action = pageBean.getSafeRequestOrNullParameter(request, "DO");
long empRecNum = UTIL.getNumValue("EMPLOYEE", "REC_NUM");
if (action != null)
{
if (action.startsWith("US:"))
unshareEmployee(request, UTIL, action.substring(3));
else if (action.equals("SHARE") && empRecNum != 0)
shareEmployee(request, UTIL, empRecNum);
}
ListBean list = UTIL.getListBean(request, "EMPSHARELIST", true);
if (empRecNum != 0)
{
StringBuffer sql = new StringBuffer();
sql.append("SELECT FLDREC_NUM, FLDCOMPANY, FLDLOCATION, FLDDEPT FROM @SCHEMAEMPLVIEW WHERE FLDEMPLOYEE = ? AND FLDTABLE='SHARED' ORDER BY FLDCOMPANY, FLDLOCATION, FLDDEPT");
ArrayList …Run Code Online (Sandbox Code Playgroud) 我需要从FedEx.com处理包含送货历史的CSV文件.不幸的是,FedEx似乎并没有真正测试其CSV文件,因为它没有引用其中包含逗号的字符串.
例如,公司名称可能是"Dog Widgets,Inc." 但CSV不引用该字符串,因此任何CSV解析器都会在"Inc."之前认为该逗号 是一个新领域的开始.
有什么办法可以使用Ruby可靠地解析这些行吗?
我能找到的唯一区别特征是,作为字符串一部分的逗号在此之后有一个空格.分隔字段的逗号没有空格.不知道这有助于我解析这个,但这是我注意到的.
好的,我正在失去它.PowerShell很讨厌我.我想要一个暂停对话框出现,但它不会.
PS W:\>>> $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Exception calling "ReadKey" with "1" argument(s): "The method or operation is not implemented."
At line:1 char:23
+ $host.UI.RawUI.ReadKey <<<< ("NoEcho")
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Run Code Online (Sandbox Code Playgroud) R 中的哪些包和函数可以执行二维非加性局部回归/平滑。例如考虑
b<-seq(-6*pi,6*pi,length=100)
xy<-expand.grid(b,b)
x=xy[[1]]
y=xy[[2]]
z= sin(x)+cos(y) + 2*sin(x)*cos(y)
contour(b,b,matrix(z,100,100))
Run Code Online (Sandbox Code Playgroud)

什么函数可以估计这个?
c# ×3
csv ×1
domain-name ×1
gql ×1
gquery ×1
ip ×1
java ×1
linux ×1
mvvm ×1
parsing ×1
powershell ×1
python ×1
r ×1
reflection ×1
ruby ×1
statistics ×1
wpf ×1