Using collation in Linq to Sql

后端 未结 2 658
谎友^
谎友^ 2020-12-03 20:06

Imagine this sql query

select * from products order by name collate Persian_100_CI_AI asc

Now using Linq:

product = DB.Prod         


        
2条回答
  •  时光说笑
    2020-12-03 20:39

    There is no direct way. Workaround:

    Create function in Sql Server

    CREATE FUNCTION [dbo].[fnsConvert]
        (
          @p NVARCHAR(2000) ,
          @c NVARCHAR(2000)
        )
    RETURNS NVARCHAR(2000)
    AS
        BEGIN
            IF ( @c = 'Persian_100_CI_AI' )
                SET @p = @p COLLATE Persian_100_CI_AI
            IF ( @c = 'Persian_100_CS_AI' )
                SET @p = @p COLLATE Persian_100_CS_AI
    
            RETURN @p    
        END
    

    Import it in model and use:

    from o in DB.Products
    orderby DB.fnsConvert(s.Description, "Persian_100_CI_AI")
    select o;
    

提交回复
热议问题