1. ホーム
  2. c#

Entity Framework - ラムダ式がデリゲート型でないため、'string'型に変換できない

2023-09-14 13:08:57

質問

私はC#ベースのコードでEntity Frameworkを使用しています。 私は予期しない奇妙なことに遭遇しており、提案を探しています。

ケース1、2、3、4... プロジェクト。

RivWorks.dll

RivWorks.Service.dll(リブワークスサービス)。

RivWorks.Alpha.dll

サンプル(すべて動作します)。

RivWorks.Alpha.dll:

public static bool EndNegotitation(long ProductID)
{
    var product = (from a in _dbFeed.AutoWithImage 
                   where a.AutoID == ProductID select a).FirstOrDefault();
...
}

RivWorks.Service.dll

public static RivWorks.Model.NegotiationAutos.AutoWithImage 
    GetProductById(long productId)
{
    var myProduct = from a in _dbFeed.AutoWithImage 
                    where a.AutoID == productId select a;

    return myProduct.FirstOrDefault();
}
public static List<RivWorks.Model.NegotiationAutos.AutoWithImage> 
    GetProductByCompany(Guid companyId)
{
    var myProduct = from a in _dbFeed.AutoWithImage 
                    where a.CompanyID == companyId select a;

    return myProduct.ToList();
}

その他

ケース "変"。

RivWorks.Web.Service.dll (WCFプロジェクト)

他のプロジェクトと同じリファレンスが含まれています。

public NegotiateSetup GetSetup(string method, string jsonInput)
{
    ...
    long.TryParse(ProductID, out result);
    var product = (from a in _dbFeed.AutoWithImage 
                   where a.AutoID == result select a).FirstOrDefault();
    ...
}

私はこのコンパイルタイムエラーを得ました(私のエディタで "where" という単語は強調表示されています)。

ラムダ式はデリゲート型でないため、'string' 型に変換できません。

何が原因でこうなるのか、何か思い当たることはありますか?

どのように解決するのですか?

結果に興味がある方へ。

私のコードの先頭にある単純なUsing文が足りなかったのです。

using System.Linq;

これでちゃんと直りました。