簡體   English   中英

在linq中將int轉換為字符串轉換為join子句中的實體

[英]Convert int to string in linq to entities on join clause

我正在嘗試加入兩個將int類型的列與varchar類型的列進行比較的表,但是沒有任何辦法,我遇到了一些轉換錯誤...

using (Ginkgo5Entities dataContext = new Ginkgo5Entities())
{
    var x = (
        from node in dataContext.new_users_teams
            join udata in dataContext.new_users_data
                on new {
                    x = SqlFunctions.StringConvert((double)node.ID),
                    y = "team" }
                equals new {
                    x = udata.value,
                    y = udata.key }
        from parent in dataContext.new_users_teams
            where node.lft >= parent.lft && node.lft <= parent.rgt && parent.ID == 6
        select new {
            team = node.team_name
            // udata = udata }
    ).ToList();
}

這拋出

“ {{類型為'System.Data.Objects.SqlClient.SqlFunctions'的指定方法'System.String StringConvert(System.Nullable`1 [System.Double])'無法轉換為LINQ to Entities存儲表達式。”

問題:

  1. 我可能正在嘗試什么? 如果是這樣..任何人都可以幫忙
  2. 我這是不好的做法嗎?

非常感謝你!

嘗試將此查詢更改為:

var x = (from node in dataContext.new_users_teams
                         join udata in dataContext.new_users_data   on node.ID equals udata.value.ToString() and udata.key equals "team" }
                         from parent in dataContext.new_users_teams

                         where node.lft >= parent.lft && node.lft <= parent.rgt && parent.ID == 6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM