从EF中选择具有多个非主键参数的单个条目

时间:2013-06-13 16:22:52

标签: c# entity-framework select

我对C#和EF很陌生。我想知道如何从具有多个非主键参数的EF模型中选择一个条目。

到目前为止我没有太大的成功。

var context = new CommentEntities();

var comments = context.T_OPT_REP_COMMENT.Where(C => C.REP_ID == parameters[0] &
               C.CUSTOMER_ID == parameters[1] &
               C.CONTRACT_POS_ID == parameters[2] &
               C.PRODUCT_ID == parameters[3] &
               C.CATEGORY == parameters[5]).Select(C => C.COMMENT_TEXT);

这个选择的结果并不是我想要的。

2 个答案:

答案 0 :(得分:3)

使用&&代替按位运算符&

答案 1 :(得分:2)

这应该为你做。

var comments = context.T_OPT_REP_COMMENT.Where(C => C.REP_ID == parameters[0] &&
               C.CUSTOMER_ID == parameters[1] &&
               C.CONTRACT_POS_ID == parameters[2] &&
               C.PRODUCT_ID == parameters[3] &&
               C.CATEGORY == parameters[5]).Select(C => C.COMMENT_TEXT);

您可以注意到,您只有&而不是&&。您可以使用WHERE在lambda表达式中指定多个&&子句。位运算符&在lambda表达式中用于捕获子句,而不用于布尔条件。

不过,我想知道你是在比较所有的属性。你有CUSTOMER_IDPRODUCT_ID独特吗?如果你这样做,你可以这样做:

var comments = context.T_OPT_REP_COMMENT.Single(....)