Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查我的应用程序中的另一个表中是否存在数组值?_C#_Asp.net_Asp.net Mvc_Linq_Entity Framework - Fatal编程技术网

C# 如何检查我的应用程序中的另一个表中是否存在数组值?

C# 如何检查我的应用程序中的另一个表中是否存在数组值?,c#,asp.net,asp.net-mvc,linq,entity-framework,C#,Asp.net,Asp.net Mvc,Linq,Entity Framework,我有以下课程:- public class ContactsDetails { public IEnumerable<AaaUserContactInfo> Info { get; set; } } 现在,我有以下类初始化新的ContactDetails对象:- public ActionResult CustomersDetails(long[] OrganizationIds) { if (OrganizationIds == null

我有以下课程:-

public class ContactsDetails
    {
        public IEnumerable<AaaUserContactInfo> Info { get; set; }
    }
现在,我有以下类初始化新的ContactDetails对象:-

public ActionResult CustomersDetails(long[] OrganizationIds)
{

    if (OrganizationIds == null)
    {
        return RedirectToAction("customer", new { isError = true });
    }
    else
    {

        var ContactsDetails = new ContactsDetails
        {
            Info = r.getcontactinfo(OrganizationIds)
        };
    }

        return View();    

}
现在我需要返回所有AaaUserContactInfo对象,这些对象的电子邮件ID包含组织名称的一部分,类似于:-

public IEnumerable<AaaUserContactInfo> getcontactinfo(long[] Organizationid)
        {
            var result = ((from uci in entities.AaaUserContactInfoes
                          join ci in entities.AaaContactInfoes on uci.CONTACTINFO_ID equals ci.CONTACTINFO_ID
                          where ci.EMAILID.ToString() == // contains any organization name in their emailIds ,, where i can get the organization name using sonthing similar to var orgname = entities.SDOrganizations.Where(a => a.ORG_ID == OrganizationIds[i]).FirstOrDefault().NAME;
                               select uci)) ;
            return result;
                                }
public IEnumerable getcontactinfo(长[]组织ID)
{
var结果=((来自entities.AaaUserContactInfoes中的uci)
在uci上的entities.aaAcontractInfo中加入ci。CONTACTINFO\u ID等于ci.CONTACTINFO\u ID
其中ci.EMAILID.ToString()=//在其电子邮件ID中包含任何组织名称,我可以使用类似于var orgname=entities.SDOrganizations的sonthing获取组织名称。其中(a=>a.ORG\u ID==OrganizationIds[i])。FirstOrDefault().name;
选择uci);
返回结果;
}

您可以尝试使用下一个查询吗?如果示例中的
FirstOrDefault()
返回null,我不知道您要做什么。在我的情况下,不会抛出异常,但不会返回记录。请注意实施的细节,以及它是否有效

public IEnumerable<AaaUserContactInfo> getcontactinfo(long[] organizationIds)
{
    var organizationNames = entities.SDOrganizations
                           .Where(org => organizationIds.Contains(org.ORG_ID))
                           .Select(org=> org.Name);


    var result = from userContactInfo in entities.AaaUserContactInfoes
                 join contactInfo in entities.AaaContactInfoes on userContactInfo.CONTACTINFO_ID equals contactInfo.CONTACTINFO_ID

                 //check if EMAILID string has at least one organizationName as substring
                 where organizationNames.Any(orgName => contactInfo.EMAILID.ToString().Contains(orgName))
                 select userContactInfo;
    return result;
}
public IEnumerable getcontactinfo(长[]个组织ID)
{
var organizationNames=entities.SDOrganizations
.Where(org=>organizationIds.Contains(org.org\u ID))
.Select(org=>org.Name);
var result=来自entities.AaaUserContactInfoes中的userContactInfo
在实体中加入contactInfo.aaa用户contactInfo上的contactInfo.contactInfo\u ID等于contactInfo.contactInfo\u ID
//检查EMAILID字符串是否至少有一个organizationName作为子字符串
其中organizationNames.Any(orgName=>contactInfo.EMAILID.ToString().Contains(orgName))
选择userContactInfo;
返回结果;
}
编辑:更新了一个答案,以处理根据
Organizationid
选择的许多组织。然后,
实体。如果
EMAILID
包含在至少一个ogranization的名称字段中,则会选择aa策略信息


注意:我重命名了一些仅在方法作用域中使用的参数,只是为了使代码更可读。

什么是
SelectRight[i]
?您是否需要查找关联的组织,然后查看
EMAILID
是否至少包含一个关联组织的名称?抱歉,SelectRight应该是OrganizationID,我已更新了代码。我需要返回所有具有包含组织名称的emailId的对象。在这里,我需要获取在传递的数组中具有组织ID的所有组织名称。。thnaksthanks感谢您的回复,但您假设我只有一个组织名称,但在我的情况下,是Organizationid[]数组将具有与数组中的每个id关联的organizatin名称。您希望
ci.EMAILID
至少等于其中一个名称吗?如果电子邮件包含任何组织名称的一部分,例如@organizationname…是的,那么您的意思是电子邮件字符串应至少包含一个域名?我会更新答案
public IEnumerable<AaaUserContactInfo> getcontactinfo(long[] organizationIds)
{
    var organizationNames = entities.SDOrganizations
                           .Where(org => organizationIds.Contains(org.ORG_ID))
                           .Select(org=> org.Name);


    var result = from userContactInfo in entities.AaaUserContactInfoes
                 join contactInfo in entities.AaaContactInfoes on userContactInfo.CONTACTINFO_ID equals contactInfo.CONTACTINFO_ID

                 //check if EMAILID string has at least one organizationName as substring
                 where organizationNames.Any(orgName => contactInfo.EMAILID.ToString().Contains(orgName))
                 select userContactInfo;
    return result;
}