LINQ to Entities ʵÏÖsql ¹Ø¼ü×Ö"In"·½Ê½×ܽá
ÔÚLINQ to EntitiesÖÐûÓа취ÔÙÏñ LINQ to SQL ÖÐÒ»ÑùʹÓà Contains µÄ·½·¨À´ÊµÏÖsql "in" ¹Ø¼ü×Ö
ÏÂÃæ´úÂëÔÚ LINQ to SQL ÖпÉÐÐ ÔÚLINQ to EntitiesÈ´ÎÞ·¨ÔËÐУº
var s = db.Account.Select(c => c.ID);
var ret =(from t in db.Profile
where s.Contains(t.ID)
select t).ToList();
Ìæ´ú·½·¨1:ʹÓ÷½·¨Any
var ids=db.Account.Select(c => c.ID);
var ret = (from t in db.Profile where ids.Any(c=>c==t.UserID) select t).ToList();
ʹÓ÷½·¨AnyÌæ»»·¨¸ãÁ˺þö¼Ã»·¨ÊµÏÖÖ±½Ó¶ÔÊý×éAny£¬ÏÂÁдúÂëÈÔÎÞ·¨Ö´ÐУº
int[] ids = new int[]{10101,10005,10007};
var ret = (from t in db.Profile where ids.Any(c=>c==t.UserID) select t).ToList();
ÓÚÊǼÌÐøGoolgeѰÕÒµÚ¶þÖÖ·½·¨£¬ÔÚMSDNÂÛ̳ÉÏÕÒÒ»¸ö¹¹ÔìLambdaÓï¾äµÄ·½·¨
Ìæ´ú·½·¨2:¹¹ÔìLambdaÓï¾ä
private static Expression<Func<TElement, bool>> BuildWhereInExpression<TElement, TValue>(Expression<Func<TElement, TValue>> propertySelector, IEnumerable<TValue> values)
{
ParameterExpression p = propertySelector.Parameters.Single();
if (!values.Any())
return e => false;
var equals = values.Select(value => (Expression)Expression.Equal(propertySelector.Body, Expression.Constant(value, typeof(TValue))));
var body&
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
#region µÃµ½ËùÓб¾µØÍøÂçÖпÉʹÓõÄSQL·þÎñÆ÷Áбí
/// <summary>
/// µÃµ½ËùÓб¾µØÍøÂçÖпÉʹÓõÄSQL·þÎñÆ÷Áбí
/// </summary>
/// <param name="p_strServerList">·þÎñÆ÷Áбí</param& ......
·½·¨Ò»
µÚÒ»²½£ºµÇÈësql/plus Ö´ÐÐÃüÁÎÞÏȺó˳Ðò£©
set time on; (˵Ã÷£º´ò¿ªÊ±¼äÏÔʾ£©
set autotrace on; (˵Ã÷£º´ò¿ª×Ô¶¯·ÖÎöͳ¼Æ£¬²¢ÏÔʾSQLÓï¾äµÄÔËÐнá¹û£©
set autotrace traceonly; (˵à ......
´æ´¢¹ý³Ì¸ú¶¯Ì¬sqlÏà±ÈÓÐÈçÏÂÓŵ㣺
1¡¢ ´æ´¢¹ý³ÌÔÊÐí±ê×¼×é¼þʽ±à³Ì
´æ´¢¹ý³ÌÔÚ±»´´½¨ÒÔºó¿ÉÒÔÔÚ³ÌÐòÖб»¶à´Îµ÷Óöø²»±ØÖØÐ±àд¸Ã´æ´¢¹ý³ÌµÄSQL
Óï¾ä¶øÇÒÊý¾Ý¿âרҵÈËÔ±¿ÉËæÊ±¶Ô´æ´¢¹ý³Ì½øÐÐÐ޸ĵ«¶ÔÓ¦ÓóÌÐòÔ´´úÂëºÁÎÞÓ°ÏìÒò
ΪӦÓóÌÐòÔ´´úÂëÖ»°üº¬´æ´¢¹ý³ÌµÄµ÷ÓÃÓï¾ä´Ó¶ø¼«´óµØÌá¸ßÁ˳ÌÐòµÄ¿ÉÒÆÖ²ÐÔ
2 ¡¢´æ´¢¹ý³Ì ......