私はテーブルのユーザー、ウィジェット、レイアウトを持っています。ユーザーは、レイアウトを介してウィジェットと多対多の関係を持っています。各レイアウトにはUserIDとWidgetIDがあります。特定のUserIDとWidgetIDに一致するレイアウトを削除したい亜音速3 ActiveRecordの私が書く使用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;
}
はい - 問題としてこれを追加してください。起こってはいけない... –
私はFindで同じ問題を抱えています。 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