【发布时间】:2014-01-20 13:51:37
【问题描述】:
我有两个名为 Activity 和 ActivityType 的表。两者之间是一对多的关系,ActivityType 为父类,Activity 为子类。
当我尝试将新创建的实体存储在与现有 ActivityType 实体相关的 Activity 表中时,我最终会得到那些预先存在的 ActivityType 实体的重复条目。
如何避免这种情况?
这就是我创建新的 Activity 实体的方式,它增加了与预先存在的 ActivityType 实体的关系:
var activities = (Session["Activities"] as List<D.Activity>);
if(activities == null)
activities = new List<D.Activity>();
using (var dbContext = new D.DataClassesDataContext())
{
var activityType = (from x in dbContext.ActivityTypes
where x.ClientID == this.Client.ClientID && x.ActivityTypeID == model.ActivityTypeID
select x).SingleOrDefault();
var activity = new D.Activity()
{
ActivityType = activityType,
ActivityTypeID = activityType.ActivityTypeID,
ClientID = this.Client.ClientID,
Description = model.ActivityDescription,
PerformedByEmployeeID = this.User.UserId,
PerformedDate = model.WorkDay,
ProjectID = model.EntityID,
StartTime = model.ActivityStartTime,
StopTime = model.ActivityStopTime
};
activities.Add(activity);
Session["Activities"] = activities;
}
这是我保存 Activity 实体的方式:
using (var dbContext = new D.DataClassesDataContext())
{
var activities = (Session["Activities"] as List<D.Activity>);
dbContext.Activities.InsertAllOnSubmit(activities);
dbContext.SubmitChanges();
return View();
}
【问题讨论】:
标签: c# sql linq linq-to-sql