사용자, 위젯 및 레이아웃 테이블이 있습니다. 사용자는 레이아웃을 통해 위젯과 다 대다 관계를 맺습니다. 각 레이아웃에는 UserID와 WidgetID가 있습니다. 특정 UserID 및 WidgetID와 일치하는 레이아웃을 삭제하고 싶습니다. 음속 3 액티브를 사용SubSonic 3 ActiveRecord 람다 식 부분적으로 무시 무시
는나는 쓰기 :
Layout.Delete(x => x.UserID == user.id && x.WidgetID == id);
그러나, 음속은 겉으로 조건의 두 번째 부분을 무시하고, 사용자에 대한 모든 위젯 레이아웃을 삭제합니다. 내가 잘못했는지, 아니면 이것이 음속 오류인가요? 후자라면 해결 방법이 있습니까?
나중에 추가 : 내 프로젝트의 모델의 하위 디렉토리에 Context.tt에 일시적으로 고정 :
diff --git a/Models/Context.tt b/Models/Context.tt
index ee64200..dd47510 100644
--- a/Models/Context.tt
+++ b/Models/Context.tt
@@ -162,8 +162,8 @@ namespace <#=Namespace#>
LambdaExpression lamda = column;
SqlQuery result = new Delete<T>(this.Provider);
result = result.From<T>();
- SubSonic.Query.Constraint c = lamda.ParseConstraint();
- result.Constraints.Add(c);
+ var q = new QueryVisitor();
+ result.Constraints.AddRange(q.GetConstraints(lamda));
return result;
}
예 - 문제로이 문제를 추가하시기 바랍니다. 일어나지 말았어야 ... –
찾기와 같은 문제가 있습니다. var items = Person.Find (x => x.ID == id && x.Name == myStringArray [0]); myStringArray가 채워집니다! – Jon
새로운 문제 제기 : http://github.com/subsonic/SubSonic-3.0/issues/#issue/55 – glebd