私には方法があります:
public DzieckoAndOpiekunCollection GetChildAndOpiekunByFirstnameLastname(string firstname, string lastname)
{
DataTransfer.ChargeInSchoolEntities db = new DataTransfer.ChargeInSchoolEntities();
DzieckoAndOpiekunCollection result = new DzieckoAndOpiekunCollection();
if (firstname == null && lastname != null)
{
IList<DzieckoAndOpiekun> resultV = from p in db.Dziecko
where lastname == p.Nazwisko
**select** new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko)
;
result.AddRange(resultV);
}
return result;
}
選択した場所のエラー:
エラー1型 'System.Linq.IQueryable <WcfService1.DzieckoAndOpiekun>'を 'System.Collections.Generic.IList <WcfService1.DzieckoAndOpiekun>'に暗黙的に変換できません。明示的な変換が存在します(キャストを見逃していますか?)
どのように私の問題を解決するのですか?
IQuerable
またはIEnumerable
をリストに変換するには、次のいずれかを実行できます。
IQueryable<object> q = ...;
List<object> l = q.ToList();
または:
IQueryable<object> q = ...;
List<object> l = new List<object>(q);
IList<DzieckoAndOpiekun> resultV
をvar resultV
に置き換えることができます。
Where句を使用する場合、IQueryableオブジェクトが必要ない場合は、必ず.First()
を含めてください。
これを試してください->
new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko).ToList()
。ToList() メソッドを使用して、linqクエリの後に、以下に示すように、返されたIQueryableの結果をIListに変換できます。
public DzieckoAndOpiekunCollection GetChildAndOpiekunByFirstnameLastname(string firstname, string lastname)
{
DataTransfer.ChargeInSchoolEntities db = new DataTransfer.ChargeInSchoolEntities();
DzieckoAndOpiekunCollection result = new DzieckoAndOpiekunCollection();
if (firstname == null && lastname != null)
{
IList<DzieckoAndOpiekun> resultV = from p in db.Dziecko
where lastname == p.Nazwisko
**select** new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko).ToList()
;
result.AddRange(resultV);
}
return result;
}
DbのレコードのリストでEFでこの方法で問題を解決しました
ListOfObjectToBeOrder.OrderBy(x => x.columnName).ToList();