【发布时间】:2021-04-15 02:38:46
【问题描述】:
我的 ASP.NET Core 3.1 MVC 项目中有一个名为 Tag 的 Entity Framework 实体,这是一个简单的模型:
public class Tag
{
public string TagName { get; set; }
public string TagNameNormalized { get; set; }
public DateTime CreatedAt {get; set; }
public string CreatedBy {get; set; }
}
用户可以从网站添加标签,这些标签存储在ICollection<Tag> 中。但我只想存储新标签,而不是重复的。
在某些时候,我需要评估包含新添加标签的ICollection 与已存储在数据库中的标签 (_context)。我只想要唯一的名称(TagName 属性),其他属性可以相同。
现在,我正在这样做:
ICollection<Tag> duplicateTags = _context.Tags.ToList().Intersect(tagsToCheck).ToList();
但这可能不是我想要的,因为它会评估模型的所有属性。
我应该使用哪种 Linq 查询,我只评估 TagName 属性,但仍然选择整个实体?
感谢任何帮助和建议!
【问题讨论】:
-
检查这个答案,这将有助于过滤掉重复的stackoverflow.com/a/65597757/10646316
标签: c# linq asp.net-core entity-framework-core