C# 将SQL转换为等效的LINQ

C# 将SQL转换为等效的LINQ,c#,sql,linq,C#,Sql,Linq,我无法将此语法转换为Linq: SELECT Medlemmer.Skif, Grader.Grad, Medlemmer.Navn, Medlemmer.Mellemnavn, Medlemmer.Efternavn, Medlemmer.Adresse, Medlemmer.Telefon, Medlemmer.Mobil, Medlemmer.PostNr, Medlemmer.town,

我无法将此语法转换为Linq:

SELECT 
    Medlemmer.Skif, 
    Grader.Grad, 
    Medlemmer.Navn, 
    Medlemmer.Mellemnavn, 
    Medlemmer.Efternavn, 
    Medlemmer.Adresse, 
    Medlemmer.Telefon, 
    Medlemmer.Mobil, 
    Medlemmer.PostNr, 
    Medlemmer.town, 
    Medlemmer.mail, 
    Medlemmer.Picture 
FROM 
    Medlemmer 
    CROSS APPLY Get_grader(Medlemmer.Skif) as Grader 
WHERE 
    Medlemmer.Aktiv = 1
ORDER BY 
    Medlemmer.Navn
Get_grader()是返回包含数据的表的函数)

我在这里:

var q = from a in db.GetTable<Medlemmer>()
           where a.Aktiv == true
           orderby a.Navn
           select new
               {
                 Grad = db.Get_grader(Convert.ToInt32(a.Skif)),
                 Skif = a.Skif,
                 Navn = a.Navn,
                 Mellemnavn = a.Mellemnavn,
                 Efternavn = a.Efternavn,
                 Adresse = a.Adresse,
                 Telefon = a.Telefon,
                 Mobil = a.Mobil,
                 PostNr = a.PostNr,
                 town = a.town,
                 mail = a.mail,
                 Picture = a.Picture 
               };
var q=来自db.GetTable()中的a
其中a.Aktiv==true
订购者a.纳文
选择新的
{
Grad=db.Get\u分级器(转换为32(a.Skif)),
Skif=a.Skif,
Navn=a.Navn,
Mellemnavn=a.Mellemnavn,
Efternavn=a.Efternavn,
地址,
Telefon=a.Telefon,
美孚,
PostNr=a.PostNr,
城镇,
mail=a.mail,
图片
};
现在毕业生返回“System.Collections.Generic.List`1[Get_grader]”


如何获得正确的值?

可能是这样的:

var q = from a in db.GetTable<Medlemmer>()
            from grad in db.Get_grader(Convert.ToInt32(a.Skif))
           where a.Aktiv == true
           orderby a.Navn
           select new
               {
                 Skif = a.Skif,
                 Grad =grad.Grad
                 Navn = a.Navn,
                 Mellemnavn = a.Mellemnavn,
                 Efternavn = a.Efternavn,
                 Adresse = a.Adresse,
                 Telefon = a.Telefon,
                 Mobil = a.Mobil,
                 PostNr = a.PostNr,
                 town = a.town,
                 mail = a.mail,
                 Picture = a.Picture 
               };
var q=来自db.GetTable()中的a
从db.Get_分级机中的梯度(转换为32(a.Skif))
其中a.Aktiv==true
订购者a.纳文
选择新的
{
Skif=a.Skif,
梯度=梯度
Navn=a.Navn,
Mellemnavn=a.Mellemnavn,
Efternavn=a.Efternavn,
地址,
Telefon=a.Telefon,
美孚,
PostNr=a.PostNr,
城镇,
mail=a.mail,
图片
};
或者,如果你想要一份仅仅是评分员的名单。然后像这样的事情可能:

var q = from a in db.GetTable<Medlemmer>()
           where a.Aktiv == true
           orderby a.Navn
           select new
               {
                 Skif = a.Skif,
                 Grad = db.Get_grader(Convert.ToInt32(a.Skif))
                                       .Select(s=>s.Grad),
                 Navn = a.Navn,
                 Mellemnavn = a.Mellemnavn,
                 Efternavn = a.Efternavn,
                 Adresse = a.Adresse,
                 Telefon = a.Telefon,
                 Mobil = a.Mobil,
                 PostNr = a.PostNr,
                 town = a.town,
                 mail = a.mail,
                 Picture = a.Picture 
               };
var q=来自db.GetTable()中的a
其中a.Aktiv==true
订购者a.纳文
选择新的
{
Skif=a.Skif,
Grad=db.Get\u分级器(转换为32(a.Skif))
.选择(s=>s.Grad),
Navn=a.Navn,
Mellemnavn=a.Mellemnavn,
Efternavn=a.Efternavn,
地址,
Telefon=a.Telefon,
美孚,
PostNr=a.PostNr,
城镇,
mail=a.mail,
图片
};

可能是这样的:

var q = from a in db.GetTable<Medlemmer>()
            from grad in db.Get_grader(Convert.ToInt32(a.Skif))
           where a.Aktiv == true
           orderby a.Navn
           select new
               {
                 Skif = a.Skif,
                 Grad =grad.Grad
                 Navn = a.Navn,
                 Mellemnavn = a.Mellemnavn,
                 Efternavn = a.Efternavn,
                 Adresse = a.Adresse,
                 Telefon = a.Telefon,
                 Mobil = a.Mobil,
                 PostNr = a.PostNr,
                 town = a.town,
                 mail = a.mail,
                 Picture = a.Picture 
               };
var q=来自db.GetTable()中的a
从db.Get_分级机中的梯度(转换为32(a.Skif))
其中a.Aktiv==true
订购者a.纳文
选择新的
{
Skif=a.Skif,
梯度=梯度
Navn=a.Navn,
Mellemnavn=a.Mellemnavn,
Efternavn=a.Efternavn,
地址,
Telefon=a.Telefon,
美孚,
PostNr=a.PostNr,
城镇,
mail=a.mail,
图片
};
或者,如果你想要一份仅仅是评分员的名单。然后像这样的事情可能:

var q = from a in db.GetTable<Medlemmer>()
           where a.Aktiv == true
           orderby a.Navn
           select new
               {
                 Skif = a.Skif,
                 Grad = db.Get_grader(Convert.ToInt32(a.Skif))
                                       .Select(s=>s.Grad),
                 Navn = a.Navn,
                 Mellemnavn = a.Mellemnavn,
                 Efternavn = a.Efternavn,
                 Adresse = a.Adresse,
                 Telefon = a.Telefon,
                 Mobil = a.Mobil,
                 PostNr = a.PostNr,
                 town = a.town,
                 mail = a.mail,
                 Picture = a.Picture 
               };
var q=来自db.GetTable()中的a
其中a.Aktiv==true
订购者a.纳文
选择新的
{
Skif=a.Skif,
Grad=db.Get\u分级器(转换为32(a.Skif))
.选择(s=>s.Grad),
Navn=a.Navn,
Mellemnavn=a.Mellemnavn,
Efternavn=a.Efternavn,
地址,
Telefon=a.Telefon,
美孚,
PostNr=a.PostNr,
城镇,
mail=a.mail,
图片
};

我无法进行测试,但请尝试以下方法:

var q = from a in db.GetTable<Medlemmer>()
        from g in db.Get_grader(Convert.ToInt32(a.Skif))
           where a.Aktiv == true
           orderby a.Navn
           select new
               {
                 Grad = g.Grad,
                 Skif = a.Skif,
                 Navn = a.Navn,
                 Mellemnavn = a.Mellemnavn,
                 Efternavn = a.Efternavn,
                 Adresse = a.Adresse,
                 Telefon = a.Telefon,
                 Mobil = a.Mobil,
                 PostNr = a.PostNr,
                 town = a.town,
                 mail = a.mail,
                 Picture = a.Picture 
               };
var q=来自db.GetTable()中的a
从g到db.Get_分级器(转换为32(a.Skif))
其中a.Aktiv==true
订购者a.纳文
选择新的
{
梯度=g.梯度,
Skif=a.Skif,
Navn=a.Navn,
Mellemnavn=a.Mellemnavn,
Efternavn=a.Efternavn,
地址,
Telefon=a.Telefon,
美孚,
PostNr=a.PostNr,
城镇,
mail=a.mail,
图片
};

我无法进行测试,但请尝试以下方法:

var q = from a in db.GetTable<Medlemmer>()
        from g in db.Get_grader(Convert.ToInt32(a.Skif))
           where a.Aktiv == true
           orderby a.Navn
           select new
               {
                 Grad = g.Grad,
                 Skif = a.Skif,
                 Navn = a.Navn,
                 Mellemnavn = a.Mellemnavn,
                 Efternavn = a.Efternavn,
                 Adresse = a.Adresse,
                 Telefon = a.Telefon,
                 Mobil = a.Mobil,
                 PostNr = a.PostNr,
                 town = a.town,
                 mail = a.mail,
                 Picture = a.Picture 
               };
var q=来自db.GetTable()中的a
从g到db.Get_分级器(转换为32(a.Skif))
其中a.Aktiv==true
订购者a.纳文
选择新的
{
梯度=g.梯度,
Skif=a.Skif,
Navn=a.Navn,
Mellemnavn=a.Mellemnavn,
Efternavn=a.Efternavn,
地址,
Telefon=a.Telefon,
美孚,
PostNr=a.PostNr,
城镇,
mail=a.mail,
图片
};