Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# 使用LINQ搜索关系数据库_C#_Sql_Asp.net Mvc_Linq_Relational Database - Fatal编程技术网

C# 使用LINQ搜索关系数据库

C# 使用LINQ搜索关系数据库,c#,sql,asp.net-mvc,linq,relational-database,C#,Sql,Asp.net Mvc,Linq,Relational Database,我有以下数据库: 以及以下代码: public IActionResult Index(IssueModel searchCriteria) { var bloods = from m in _context.Blood select m; if (!string.IsNullOrEmpty(searchCriteria.SearchComponent)) { //Blood Component bloo

我有以下数据库:

以及以下代码:

public IActionResult Index(IssueModel searchCriteria)
{
    var bloods = from m in _context.Blood
                 select m;
    if (!string.IsNullOrEmpty(searchCriteria.SearchComponent))
    {
        //Blood Component
        bloods = bloods.Where(s => s.Component.Contains(searchCriteria.SearchComponent));
        //Blood Type : This is where I plan to search for a specific blood type.
    }
    return View(bloods);
}
如你所见,我很乐意在血液数据库中搜索某种成分类型。在我标记的区域中,我想搜索与某个塑料型或红血型相关的血液

有什么想法吗?谢谢

编辑:感谢所有提供答案的人。我看到的所有答案都非常有用,不仅有助于我破解这个问题,而且提高了我对这个主题的理解。

像这样:

    result = new List<Blood>();

    foreach (var b in bloods)
    {
      if (_context.Donor.Where(d => d.id == b.BloodId)
                        .Any(d => (d.PlasType == "somethingsYouNow") || (d.RedBloodType == "somethingsYouNow"))
      {
        result.Add(b)
      }
    }


    return result;
result=newlist();
foreach(血液中的b型病毒)
{
if(_context.Donor.Where(d=>d.id==b.BloodId)
.Any(d=>(d.PlasType==“somethingsYouNow”)| |(d.RedBloodType==“somethingsYouNow”))
{
结果.加入(b)
}
}
返回结果;
像这样:

    result = new List<Blood>();

    foreach (var b in bloods)
    {
      if (_context.Donor.Where(d => d.id == b.BloodId)
                        .Any(d => (d.PlasType == "somethingsYouNow") || (d.RedBloodType == "somethingsYouNow"))
      {
        result.Add(b)
      }
    }


    return result;
result=newlist();
foreach(血液中的b型病毒)
{
if(_context.Donor.Where(d=>d.id==b.BloodId)
.Any(d=>(d.PlasType==“somethingsYouNow”)| |(d.RedBloodType==“somethingsYouNow”))
{
结果.加入(b)
}
}
返回结果;

您是否具有类似于
Blood.sensors
的导航属性(如果是一对多关系)?您可以通过此属性访问该属性,但在此之前,您应该包括:

Blood.Include(c => c.Donors);

您是否具有类似于
Blood.sensors
(如果是一对多关系)的导航属性?您可以通过此属性访问它,但之前您应该包括:

Blood.Include(c => c.Donors);

我只需要创建简单的sql查询,然后将其转换为linq查询

Select distinct blood.* from blood
inner join donor on blood.donorid = donor.donorid
where donor.PlasType like 'param' or RedBloodType like 'param'
现在将其转换为linq查询

var filteredBlood = (from b in blood
                      join d in donor on b.DonorId equals d.DonorId
                      where d.PlasType.contains("param") || d.RedBloodType.contains("param")
                      select b).distinct().toList();

我只需要创建简单的sql查询,然后将其转换为linq查询

Select distinct blood.* from blood
inner join donor on blood.donorid = donor.donorid
where donor.PlasType like 'param' or RedBloodType like 'param'
现在将其转换为linq查询

var filteredBlood = (from b in blood
                      join d in donor on b.DonorId equals d.DonorId
                      where d.PlasType.contains("param") || d.RedBloodType.contains("param")
                      select b).distinct().toList();

你的
return
语句忽略了
bloods
这一事实毫无帮助……但是,你还没有真正提出问题。你到底想问什么?你可以继续你的查询。给定
blood.DonorId
,你可以找到与你的
血浆类型和
红血型匹配的
捐赠者e
条件。然后,返回查询结果,而不是原始的
\u context.Blood.List
您的
return
语句忽略
Blood
这一事实是没有帮助的……但是,您还没有真正提出问题。您到底坚持什么?您可以继续查询。考虑到
Blood.DonorId
,您可以找到符合您的
PlasmaType
RedBloodType
标准的
捐献者
。然后,返回查询结果,而不是原始的
\u context.Blood.List