1
public ViewResult Medicament(string searchTerm)
    {


        if (!String.IsNullOrEmpty(searchTerm))
        {
           var Medicament = from s in db.MEDICAMENTs
                         from j in db.FOURNISSEURs
                         where s.ID_Fournisseur.Equals(j.CODE_FOUR) &&
                               j.NOM_FOUR.Equals(searchTerm)
                         select s;



             return View(Medicament.ToList().Any());
        }
                return View();
    }

私はこのメッセージを受け取りました:

タイプ 'System.Int32' をタイプ 'System.Object' にキャストできません。LINQ to Entities は、EDM プリミティブ型または列挙型のキャストのみをサポートします。

4

2 に答える 2

9

Equalsこのクエリでは使用しないでください。==代わりに使用してください。Equals(object obj) は、この obj を具体的な型にキャストする必要がある式で変換しますが、LINQ to Entities はそのようなキャストをサポートしていません。

于 2013-04-30T13:47:05.957 に答える
-1

私の実際の勤務先の会社では NHibernate を使用しているため、エンティティ クエリを作成していないのは久しぶりです。しかし、次のようなクエリをいくつか実行したことを覚えています。

public ViewResult Medicament(string searchTerm)
{
    if (!String.IsNullOrEmpty(searchTerm))
    {
        var Medicament = from s in db.MEDICAMENTs
                     from j in db.FOURNISSEURs
                     where s.ID_Fournisseur equals j.CODE_FOUR &&
                           j.NOM_FOUR equals searchTerm
                     select s;

        return View(Medicament.ToList().Any());
    }

    return View();
}
于 2014-01-09T11:30:57.753 に答える