7

私のページの1つで、入力された顧客に関する情報PAN NO,Email,Mobile Noが以前に入力された可能性のある重複で構成されているかどうかを確認する必要があります.現在、このLinq To SQLステートメントを使用して試しています

    var duplicate = (from dup in dt.Data_Customer_Logs
                     where dup.cPanGirNo == panno 
                           || dup.cEmail == email 
                           || dup.nMobileNo.ToString() == mobno
    select dup).Any(); 

それは機能していますが、私の問題を解決するための正しい方法は何かについて誰かが私を助けることができます.また、レコードが見つからない場合、結果はどうなりますか. どんな提案でも大歓迎です。

4

2 に答える 2

5
bool duplicateExists = dt.Data_Customer_Logs.Any(x => 
                         x.cPanGirNo == panno 
                      || x.cEmail == email
                      || x.nMobileNo.ToString() == mobno);

そのようなレコードが存在するかどうかを知りたいだけの場合、これは少しきれいです。また、複数のレコードをクライアント側に戻して結果を処理することを回避できると思いますIEnumerable<T>.Any

基準に一致するレコードも取得する必要がある場合は、次を使用できますIQueryable<T>.Where

var duplicates =  dt.Data_Customer_Logs.Where(x => 
                         x.cPanGirNo == panno 
                      || x.cEmail == email
                      || x.nMobileNo.ToString() == mobno);
if(duplicates.Any())
{
    // use duplicates...
    foreach(var dup in duplicates)
    {
        //use dup.cEmail, dup.nMobileNo, etc.
于 2012-06-19T07:41:13.337 に答える
2

これを試して

var duplicate = (from dup in dt.Data_Customer_Logs
                 where dup.cPanGirNo == panno 
                       || dup.cEmail == email 
                       || dup.nMobileNo.ToString() == mobno
select dup).FirstOrDefault();

if(duplicate != null && duplicate.Any())
   //here logic of what should happend if there is something in db
于 2012-06-19T07:40:35.390 に答える