最近想使用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中的字段中然后就行了调用这个方法就可一查询出你要的数据