EF框架下的双表查询

最近想使用ef做一些开发但是遇到了一些小问题就是如何实现多表的查询然后经过查资料终于找出了结果

我们知道ef中表的关系是一对一  一对多  多对多

接下来就讲一下一对一的关系下的栗子

先编写两个表

第一个实体数据模型中的字段,名字叫做Userss

public int UId { get; set; }
public string Uname { get; set; }  

第二个实体数据模型中的字段,名字叫做Mission

public int MId { get; set; }
public DateTime? Time { get; set; }
public decimal? Price { get; set; }
public int? UId { get; set; }

webapi中写的方法

public IQueryable<more> Showmore()
        {

            var linq = from s in mo.Userss
                       from m in mo.Mission
                       where s.UId == m.UId
                       select new more
                       {
                         Uname= s.Uname,
                          MId= m.MId,
                          Time= m.Time,
                          Price= m.Price
                       };
            return linq;
        }

这个是使用linq做的查询但是这个方法定义的是一个list集合但是集合中的名称是你要查询的多个表中的所有字段的集合形成一个新的实体数据模型

然后如下新的实体数据模型名字叫做more

public class more
    {
        public string Uname { get; internal set; }
        public int MId { get; internal set; }
        public DateTime? Time { get; internal set; }
        public decimal? Price { get; internal set; }
    }

然后将你从linq中查询到的数据赋值给more中的字段中然后就行了调用这个方法就可一查询出你要的数据

 

原文地址:https://www.cnblogs.com/zsznh/p/10746676.html