none
linq 兼容sqlserver2000 RRS feed

  • 问题

  •     Uinfo =  Uinfolist.Where(t => t.IDcard == temp.v_personal_id).First<UserTbInfo>();  这个是我的linq语句 在环境sqlserver2005  中完全没问题 但是在sqlserver2000

    有会有问题 我用数据跟踪的语句:exec sp_executesql N'SELECT TOP (1)
    [Extent1].[i_serial] AS [i_serial],
    [Extent1].[i_date] AS [i_date],
    [Extent1].[i_time] AS [i_time],
    [Extent1].[i_client_no] AS [i_client_no],
    [Extent1].[i_flag] AS [i_flag],
    [Extent1].[e_bala] AS [e_bala],
    [Extent1].[c_status] AS [c_status],
    [Extent1].[i_modify_date] AS [i_modify_date],
    [Extent1].[i_modify_time] AS [i_modify_time],
    [Extent1].[v_memo] AS [v_memo],
    [Extent1].[i_sysinfo] AS [i_sysinfo],
    [Extent1].[v_personal_id] AS [v_personal_id]
    FROM [dbo].[cashMove] AS [Extent1]
    WHERE ([Extent1].[i_serial] = @p__linq__0) AND (@p__linq__1 = @p__linq__2)',N'@p__linq__0 bigint,@p__linq__1 int,@p__linq__2 int',@p__linq__0=2,@p__linq__1=20110304,@p__linq__2=20110304

    TOP (1)  明显不是标准sql语句  在2005能显示 在2000里面 只支持 top 1 

    请教大家这个问题怎么解决使得linq生成标准化的SQL语句

     

    2011年3月7日 2:56

答案

  • 你好!

    我认为SQL Server2000对LINQ和Entity Framework的支持不是很好,有很多方面都不支持,所以我建议最好不要用SQL Server2000版本的数据库,最好是用MS SQL 2005以上版本的数据库,这时候的这些数据库版本对LINQ和EF的支持都考虑在内,所以相对来说不支持的地方很少。用起来会很方便。

     

    谢谢!


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年3月8日 6:00
    版主