我有一个Event
表和一个Session
表。存储过程getEvents
和getEventSessions
用于检索数据,因此我创建了C#POCO类来转换调用存储过程的结果。
public class Session
{
public DateTime SessionDate { get; set; }
public string SessionName { get; set; }
}
public class Event
{
public int EventId { get; set; }
public string EventName { get; set; }
public Session[] Sessions { get; set; }
}
现在我需要创建新的事件和会话。我从前端获得了一个包含多个会话的Event
对象。我应该如何一次性将它们保存到数据库?
我用Google搜索,似乎有几种选择,但我很困惑。
varchar(max)
参数传入的sesssion信息。insertEvent
,而仅为插入一个会话创建另一个存储过程insertSession
。打开一个事务,调用insertEvent
,然后遍历会话列表并逐个调用insertSession
。 对我而言,#3似乎是最好的方法,但我很困惑实体框架在这种情况下如何处理事务。 #1听起来像一个非常老派,可能贬值的方式。对于#2,我认为维护context.Events和context.Sessions是不必要的,并且与项目的其余部分不一致。
我的问题是否有最佳或更好的解决方案?