我是LINQ和Entity Framework的新手,希望能得到有关以下情况的建议。
我有一个包含两个表的实体模型。
Travel_Request(差旅申请)和Resource(资源)
样例字段
Travel_Request(差旅申请)
Request_ID
Resource_ID
资源
Resource_ID
Resource_Name
当返回所有旅行请求时,我希望将Resource_Name添加到列表中。
提前致谢。
我是LINQ和Entity Framework的新手,希望能得到有关以下情况的建议。
我有一个包含两个表的实体模型。
Travel_Request(差旅申请)和Resource(资源)
样例字段
Travel_Request(差旅申请)
Request_ID
Resource_ID
资源
Resource_ID
Resource_Name
当返回所有旅行请求时,我希望将Resource_Name添加到列表中。
提前致谢。
你需要使用Linq join:
var data = from t in Travel_Request
join r in Resource on t.Resource_ID equals r.Resource_ID
select new
{
RequestId = t.Request_ID,
ResourceId = t.Resource_ID,
ResourceName = r.Resource_Name
};
var data = from t in Travel_Request
select new
{
RequestId = t.Request_ID,
ResourceId = t.Resource_ID,
ResourceName = t.Resource.Resource_Name
};
var data = Travel_Request.Select(s=> new { Resource_Name = s.Recource.Resource_Name, Request_ID = s.Request_ID, Resource_ID = s.Resource_ID}).ToList();
var resultList = DbContext.Travel_Request.Resources.where(x=>x.Resource_Name =="Your string").ToList();
Travel_Request.Join(Resource, tr => tr.ResourceId, r => r.ResourceId, (tr, r) => new { RequestId = tr.RequestId, ResourceId = tr.ResourceId, Name = r.ResourceName})
或者更好的做法是在TravelRequest中添加一个导航属性。 TravelRequest将如下所示:
int RequestId { get; set; }
int ResourceId{ get; set; }
[ForeignKey("ResourceId")]
Resource Resource { get; set; }
DBContext.TravelRequests.Include("Resource").First().Resource.Name;
Include告诉EF获取与TravelerRequest相关的资源
var TravelRequests =
from p in Travel_Request
from r in Resource.where(Res => Res.Resource_ID == p.Resource_ID)
select new TravelModel{
requestID = p.requestID,
Resource_ID = p.Resource_ID,
ResourceName = r.ResourceName
};
但那只是我如何做的一个例子,可能有更好的方法。语法可能会有点问题,但总体思路在那里。