7

このクエリをlinqpadで実行すると:

Customer.Where(c => (c.CustomerName == "test"))

一致するレコードを返します。

Visual Studioで同じクエリを実行しようとすると、一致するレコードが返されません。これは私が使用しているコードです:

    List<Customer> customerList = new List<Customer>();

    using (DBEntities db = new DBEntities())
    {
        try
        {
            customerList = db.Customer.Where(c => (c.customerName == "test")).ToList();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

    return customerList;

これがlinqpadでは機能するのにVisual Studioでは機能しない理由を誰でも見ることができますか?

4

2 に答える 2

2

このように試してみることができますか

customerList = db.Customer.
   Where(c => String.Compare (c.customerName.ToUpper(),"test".ToUpper()) == 0).ToList();

顧客名の大文字と小文字を区別する検索に問題がある可能性があるためです。

必要に応じて、String.Compare Methodの他のバリエーションを試してください。

于 2012-12-19T10:53:56.437 に答える
0

linqpad クエリは「c.CustomerName」を使用し、Visual Studio クエリは「c.customerName」を使用します。

または、大文字と小文字が区別されるか、db.Customer セットが空であることが問題である可能性があります。

編集: DeeMac も返信でこれをカバーしています

于 2012-12-19T10:56:42.333 に答える