【发布时间】:2012-05-11 21:38:24
【问题描述】:
我正在使用实体框架 4.1(VS 2010、SQL Server 2012)将数据插入数据库。 首先,我创建一个对象的实例,用值填充属性并调用 AddObject(),如下所示:
VideoData videodata = new VideoData();
videodata.StartCaptureTime = startCaptureTime;
videodata.EndCaptureTime = endCaptureTime;
videodata.CameraID = CameraID;
using (var context = new PercEntities())
{
if (context.VideoDatas.Where(c => c.VideoID == videoID).Count() == 0)
{
var videoData = new VideoData
{
StartCaptureTime = startCaptureTime,
EndCaptureTime = endCaptureTime,
CameraID = CameraID,
};
context.VideoDatas.AddObject(videoData);
context.SaveChanges();
}
}
问题是,数据库中的表有一个标识列:
VideoID int IDENTITY(1,1)
并且我需要获取标识函数插入的值,以填充具有 VideoID 作为外键的其他对象。例如:
FrameData frameData = new FrameData();
frameData.VideoID = videodata.VideoID;
frameData.Path = path;
我唯一能想到的就是在 AddObject(videoData) 之后立即查询最大标识,但我害怕竞争条件。
我是 Entity Framework 的新手,所以我很乐意为此提供任何指导。
【问题讨论】:
标签: entity-framework-4.1 identity-column