Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melaksanakan Fungsi \'Contains()\' dalam Linq kepada Entiti?

Bagaimana untuk Melaksanakan Fungsi \'Contains()\' dalam Linq kepada Entiti?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 12:02:02372semak imbas

How to Implement 'Contains()' Functionality in Linq to Entities?

Penyelesaian untuk Melaksanakan 'Contains()' Menggunakan Linq kepada Entiti

Kaedah 'Contains()' tidak disokong oleh Linq untuk Entiti, yang menimbulkan cabaran apabila bekerja dengan koleksi ID dalam pertanyaan. Di sini, kami membentangkan penyelesaian yang boleh dilaksanakan untuk menangani had ini.

Penyelesaian:

Untuk menggantikan kaedah 'Contains()' yang tidak disokong, kami memanfaatkan 'Any() ' kaedah di tempatnya:

var q = from t in svc.OpenTransaction
        where txnIds.Any<long>(tt => tt == t.OpenTransactionId)
        select t;

Walau bagaimanapun, pengubahsuaian ini tidak menangani isu 'Any()' not disokong dalam konteks Linq kepada Entiti. Untuk mengatasinya, kami menawarkan pendekatan alternatif:

public static IQueryable<TEntity> WhereIn<TEntity, TValue>
(
this ObjectQuery<TEntity> query,
Expression<Func<TEntity, TValue>> selector,
IEnumerable<TValue> collection
)

Kaedah sambungan ini membolehkan anda menggunakan penapis pada julat jenis dan sifat entiti.

Contoh Penggunaan:

Kod berikut menunjukkan cara menggunakan 'WhereIn()' kaedah:

using (MyObjectContext context = new MyObjectContext())
{
  //Using method 1 - collection provided as collection
  var contacts1 = context.Contacts.WhereIn(c => c.Name, GetContactNames());

  //Using method 2 - collection provided statically
  var contacts2 = context.Contacts.WhereIn(c => c.Name,
    "Contact1",
    "Contact2",
    "Contact3",
    "Contact4"
    );
}

Dengan menggunakan penyelesaian ini, anda memperoleh kefungsian 'Mengandungi()' semasa bekerja dengan Linq kepada Entiti, memberikan anda lebih fleksibiliti dalam pertanyaan anda.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Fungsi \'Contains()\' dalam Linq kepada Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn