将不同的值从数据库加载到List<>
本文关键字:加载 List 数据库 | 更新日期: 2023-09-27 18:14:37
我用Event (=sport纪律)的外键创建了一个Record POCO类。一个记录可以与一个项目相关联,但一个项目可以有多个记录(世界纪录、奥运会纪录等)。现在我想用for-each循环将数据库中的每个事件(+附加记录)打印到Index视图。
但是因为表记录没有列表属性,我必须从我的记录表中创建一个本地(Distinct)事件列表,这是我的问题。
更多信息,这里是我的记录模型
public class Record
{
[Key]
public int RecordId { get; set; }
public string ResultName { get; set; }
public int ResultAge { get; set; }
public double ResultPrestation { get; set; }
public System.DateTime ResultDate { get; set; }
public string ResultPlace { get; set; }
public int CountryId { get; set; }
[ForeignKey("CountryId")]
public virtual Country Country {get; set;}
public int EventId { get; set; }
[ForeignKey("EventId")]
public virtual Event Event { get; set; }
}
和Event模型
public class Event
{
[Key]
public int EventId { get; set; }
public String Sport { get; set; }
public String Discipline { get; set; }
public Boolean SchoolcupEvent { get; set; }
public List<Record> Records { get; set; }
}
我写了一小段,在那里我结束了一个事件列表的记录存在,,但这不是一个独特的列表,这就是我需要的。
List<Event> events = new List<Event>();
foreach(var item in db.Records)
{
Event e = db.Events.Find(item.EventId);
events.Add(e);
}
我希望有人能帮助我。
对
var events = db.Records.Distinct().ToList();
可枚举。
如何将事件放在Set中,这将删除重复的事件,如果有的话,然后将Set转换回列表。
Set<Event> eventSet = new TreeSet<Event>();
foreach(var item in db.Records)
{
Event e = db.Events.Find(item.EventId);
eventSet.Add(e);
}
List<Event> eventList = new ArrayList<Event>();
if(eventSet != null && eventSet.size() > 0)
{
eventList.add(eventSet);
}