は、私はユーザーとロールのためにかなり標準モデルを持っていますViewModelには、以下のdefinied:LINQのクエリの複合型を返すために
public class RoleDetail {
public class RoleUser {
public int ID { get; set; }
public string Username { get; set; }
}
public int ID { get; set; }
public string Rolename { get; set; }
public bool Active { get; set; }
public IEnumerable<RoleUser> Users { get; set; }
}
を私は次のクエリが動作する必要があることを考え出し:
var query = Context.Roles
.Include("Users")
.Where(r => r.ID == id)
.Select(r => new RoleDetail() {
ID = r.ID,
Rolename = r.Rolename,
Active = r.Active,
Users = r.Users
.Select(u => new RoleDetail.RoleUser() {
ID = u.ID,
Username = u.Username
})
.ToList()
})
.FirstOrDefault();
しかし、この目を
LINQ to Entities does not recognize the method 'System.Collections.Generic.List [RolesRepository+RoleDetail+RoleUser] ToList[RoleUser] (System.Collections.Generic.IEnumerable[RolesRepository+RoleDetail+RoleUser])' method, and this method cannot be translated into a store expression.
私は多くのLinqと仕事をしていないので、私の質問は何とか間違っていると確信しています。誰かが私の質問がどこに間違っているのか、私が達成しようとしていることを伝える良い方法があるのかを私に見せてもらえますか?
ありがとうございます!
:
代わり、あなたはEFが好きではないという表現を処理する必要があり、より一般的に適用可能な解決策は、早期
AsEnumerable
呼び出しを挿入することです。 ToList() '? –それは問題であったと思われます。誰もが答えを残してくれてありがとう! – BradBrening