Linq查询以检查重复值

Pri*_*tel 7 c# asp.net linq-to-sql

在我的一个页面中,我需要检查输入的客户信息是否包含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(); 
Run Code Online (Sandbox Code Playgroud)

它正在工作,但任何人都可以帮助我解决我的问题的正确方法.如果没有找到记录将是什么结果.欢迎任何建议.

Ere*_*mez 5

bool duplicateExists = dt.Data_Customer_Logs.Any(x => 
                         x.cPanGirNo == panno 
                      || x.cEmail == email
                      || x.nMobileNo.ToString() == mobno);
Run Code Online (Sandbox Code Playgroud)

如果你只是想知道这些记录是否存在,这是一个清洁工.我认为这将避免带回多个记录的客户端,然后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.
Run Code Online (Sandbox Code Playgroud)