实体框架6:通过给定名称和给定子列表(不带ID)获取实体列表

时间:2018-09-13 15:47:23

标签: c# entity-framework linq lambda

我遵循以下声明。这行得通,并给了我ResourceObjects的列表。

var element = (from ro in ctx.ResourceObject
               join prop in ctx.ResourceProperty on ro.ID equals prop.Resource.ID into propList
               join rel in ctx.ResourceRelation on ro.ID equals rel.Resource.ID into relaList
               where (ro.ResourceType.Name == ResourceTypeEnum.File.ToString()
                   || ro.ResourceType.Name == ResourceTypeEnum.Folder.ToString())
               select new
               {
                   ID = ro.ID,
                   Name = ro.Name,
                   ResourceType = ro.ResourceType,
                   Properties = propList.ToList(),
                   Relations = relaList.ToList()
               }).ToList().Select(p => new ResourceObject()
                   {
                       ID = p.ID,
                       Name = p.Name,
                       Properties = p.Properties,
                       Relations = p.Relations,
                       ResourceType = p.ResourceType
                       }).ToList();

现在,我有了一个新创建的资源对象列表,这些对象的属性没有任何ID,并且想将它们与数据库进行比较。每个对象都有一个名称和一个属性(名称,值)的子列表,这使它们唯一。现在,我想更改查询以在数据库中找到这些对象。

foreach (var resObj in FilesFolder)
{
    var objectList = ....
}

我如何比较我的ResourceObject表与resObj.Name和属性列表(仅名称和值)。我认为我需要对上述功能进行一些更改,但是我不确定,如何才能将子列表与仅具有属性名称和值且没有ID的情况进行比较。

0 个答案:

没有答案