我遵循以下声明。这行得通,并给了我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
的情况进行比较。