データベースにデータを挿入するために、エンティティフレームワーク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();
}
}
重要なのは、データベースのテーブルにID列があるということです。
VideoID int IDENTITY(1,1)
また、VideoIDを外部キーとして持つ追加のオブジェクトを埋めるために、ID関数によって挿入された値を取得する必要があります。例えば:
FrameData frameData = new FrameData();
frameData.VideoID = videodata.VideoID;
frameData.Path = path;
私が考えることができた唯一のことは、AddObject(videoData)の直後に最大IDを照会することでしたが、競合状態が怖いです。
私はEntityFrameworkを初めて使用するので、これに関するガイダンスをいただければ幸いです。