1

こんにちは私は2番目のドライバと価格ですが、エラーが表示されます:'System.Linq.IQueryable' System.Linq.IQueryable '。明示的な変換が存在する(あなたはキャストが欠けている?)以下はLinqのエンティティへの2列の値の選択に関する問題

はコードです:

public IQueryable<Event> GetSecondDriverOption(int eventID) 
{ 
    ApextrackdaysEntities entity = new ApextrackdaysEntities(); 
    IQueryable<Event> SecondDriver = from p in entity.Events 
             where p.ID == eventID 
             select new{ p.SecondDriver, 
                p.SecondDriverPrice}; 
    return SecondDriver; 
} 

すべてのヘルプや提案は、あなたがIQueryable<Event>どこを期待するときには、投影を使用することはできません

答えて

3

のthnx理解されるであろうEventがあなたのマップタイプです。あなたはどちらかでなければなりませんEventを選択:

IQueryable<Event> SecondDriver = from p in entity.Events 
           where p.ID == eventID 
           select p; 

それとも、新しいタイプの新しいタイプとプロジェクトデータを作成する必要があります。

public class EventDto 
{ 
    public Driver SecondDriver { get; set; } 
    public Price SecondDriverPrice { get; set; } 
} 

し、あなたの方法を再定義:

public IQueryable<EventDto> GetSecondDriverOption(int eventID) 
{ 
    ApextrackdaysEntities entity = new ApextrackdaysEntities(); 
    IQueryable<EventDto> SecondDriver = from p in entity.Events 
             where p.ID == eventID 
             select new EventDto 
              { 
               SecondDriver = p.SecondDriver, 
               SecondDriverPrice = p.SecondDriverPrice 
              }; 
    return SecondDriver; 
} 
+0

使用したクラスEventDtoはカスタム形状のViewモデルクラスです。 –

+0

好きなように呼び出します。 2つのカラム/プロパティのみを選択してメソッドから返すことを可能にするクラスです。 –

1

あなたが匿名を返すことはできません。オブジェクト。

public IQueryable<Event> GetSecondDriverOption(int eventID) 
{ 
    ApextrackdaysEntities entity = new ApextrackdaysEntities(); 
    var seconDriver = 
      from p in entity.Events 
      where p.ID == eventID; 
      select p; 
    return secondDriver; 
} 
+0

しかし、私は両方の列をseconddriverだけでなく、 –

+0

したいので、私はsecondDriver.price、コントローラのviceversaこのクラスを呼び出すことによって何かを行うことができます –

+0

@ムハンマドアワイス、コントローラがデータを照会し、これを埋めるようにビューモデルを使用する必要がありますビューに渡されるビューモデルです。このビューモデルには、ビューに必要なプロパティが含まれます。 –

関連する問題