2016-10-24 7 views
1

実行します。私は、リストフィールドLINQのどのように私はフィールドのリスト持っている「ここで、[列](値のリスト)で、」

 var Questions = (from item in db.Questions 

            where Fields_Of_User.Any(fieldid => fieldid.Equals(item.Field_ID)) 
            select item 
          ); 

で質問を選択したい

var Fields_Of_User = (from item in db.Field_Relationship 
            where item.User_ID == ID_Of_User 
            select item.Field_ID 
            ).ToList(); 

をそして、私はビューでViewbag

ViewBag.Questions= Questions; 

に入れて、私はそれを呼び出す:

Unable to cast the type 'System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' to type 'System.Object'. LINQ to Entities only supports casting EDM primitive or enumeration types.

問題で: は私がエラーだ

where Fields_Of_User.Any(fieldid => fieldid.Equals(item.Field_ID)) 

をしかし、私はそれを修正する方法がわかりません。

+0

試して:

var Fields_Of_User = (from item in db.Field_Relationship where item.User_ID == ID_Of_User && item.Field_ID != null select (int)item.Field_ID ).ToList(); 

2番目のクエリは次のように書き換える必要があります(フィールドID => fieldid.Field_ID == item.Field_ID) ' –

+0

フィールドIDでエラーが発生しました。 –

答えて

1

問題は、最初のクエリでnullable intのリストが生成され、検索ではnull以外の値のリストが必要になる可能性があります。とにかくnullと一致しませんので、あなたは非null値をフィルタリングし、最初のクエリでintにキャストできます。

var Questions = (from item in db.Questions 
    where Fields_Of_User.Any(fieldid => fieldid == item.Field_ID) 
    select item 
); 
+0

このステートメントは機能しません。 –

+0

このステートメントは機能しません:Fields_Of_User.Contains(item.Field_ID) –

+0

@ ThếHiệpどのようなエラーが表示されますか? – dasblinkenlight

関連する問題