我有一些代码可以保存数据,创建数据和加载数据库。
但是,有没有办法优化此代码?比如for循环只是为了从列表中为模型赋值?我觉得这很麻烦,因为我有更多的条目要保存并在以后添加。
创建我的表,如果它们不存在:
using (IRISInSiteLiveEntities DB = new IRISInSiteLiveEntities()) { ProjectDetails_Deployment projectdetails_Deployment = new ProjectDetails_Deployment(); ProjectDetails_DeskTopReview projectdetails_DeskTopReview = new ProjectDetails_DeskTopReview(); ProjectDetails_Handover projectdetails_Handover = new ProjectDetails_Handover(); ProjectDetails_SiteDetails projectdetails_SiteDetails = new ProjectDetails_SiteDetails(); ProjectDetails_Survey projectdetails_Survey = new ProjectDetails_Survey(); //Deployment projectdetails_Deployment.ProjectID = id; projectdetails_Deployment.SiteID = siteid; projectdetails_Deployment.Visit = visit; projectdetails_Deployment.SiteName = sitename; //Handover projectdetails_Handover.ProjectID = id; projectdetails_Handover.SiteID = siteid; projectdetails_Handover.Visit = visit; projectdetails_Handover.SiteName = sitename; //DesktopReview projectdetails_DeskTopReview.ProjectID = id; projectdetails_DeskTopReview.SiteID = siteid; projectdetails_DeskTopReview.Visit = visit; projectdetails_DeskTopReview.SiteName = sitename; //SiteDetails projectdetails_SiteDetails.ProjectID = id; projectdetails_SiteDetails.SiteID = siteid; projectdetails_SiteDetails.Visit = visit; projectdetails_SiteDetails.SiteName = sitename; //Survey projectdetails_Survey.ProjectID = id; projectdetails_Survey.SiteID = siteid; projectdetails_Survey.Visit = visit; projectdetails_Survey.SiteName = sitename; DB.ProjectDetails_Deployment.Add(projectdetails_Deployment); DB.SaveChanges(); DB.ProjectDetails_Handover.Add(projectdetails_Handover); DB.SaveChanges(); DB.ProjectDetails_SiteDetails.Add(projectdetails_SiteDetails); DB.SaveChanges(); DB.ProjectDetails_DeskTopReview.Add(projectdetails_DeskTopReview); DB.SaveChanges(); DB.ProjectDetails_Survey.Add(projectdetails_Survey); DB.SaveChanges(); }
将数据保存到我的数据库(使用循环而不是分配每个?)
//Proceed to save
ProjectDetails_Deployment existing_projectdetails_Deployment = DB.ProjectDetails_Deployment.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == visit).FirstOrDefault();
ProjectDetails_DeskTopReview existing_projectdetails_DeskTopReview = DB.ProjectDetails_DeskTopReview.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == visit).FirstOrDefault();
ProjectDetails_Handover existing_projectdetails_Handover = DB.ProjectDetails_Handover.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == visit).FirstOrDefault();
ProjectDetails_SiteDetails existing_projectdetails_SiteDetails = DB.ProjectDetails_SiteDetails.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == visit).FirstOrDefault();
ProjectDetails_Survey existing_projectdetails_Survey = DB.ProjectDetails_Survey.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == visit).FirstOrDefault();
//Site Details
existing_projectdetails_SiteDetails.SiteAddress = model.SiteAddress;
existing_projectdetails_SiteDetails.SitePostcode = model.SitePostcode;
existing_projectdetails_SiteDetails.NGR = model.NGR;
existing_projectdetails_SiteDetails.LatAndLongs = model.LatAndLongs;
existing_projectdetails_SiteDetails.SiteType = model.SiteType;
existing_projectdetails_SiteDetails.SiteOwner = model.SiteOwner;
existing_projectdetails_SiteDetails.SiteContactDetails = model.SiteContactDetails;
existing_projectdetails_SiteDetails.SiteAccessProvider = model.SiteAccessProvider;
existing_projectdetails_SiteDetails.SiteAccessProvider_ContactDetails = model.SiteAccessProvider_ContactDetails;
existing_projectdetails_SiteDetails.CabinOOB = model.CabinOOB;
existing_projectdetails_SiteDetails.CabinOOB_DateChecked = model.CabinOOB_DateChecked;
existing_projectdetails_SiteDetails.CabinOOB_CheckedBy = model.CabinOOB_CheckedBy;
existing_projectdetails_SiteDetails.TowerOOB = model.TowerOOB;
existing_projectdetails_SiteDetails.TowerOOB_DateChecked = model.TowerOOB_DateChecked;
existing_projectdetails_SiteDetails.TowerOOB_CheckedBy = model.TowerOOB_CheckedBy;
existing_projectdetails_SiteDetails.SiteOOB = model.SiteOOB;
existing_projectdetails_SiteDetails.SiteOOB_DateChecked = model.SiteOOB_DateChecked;
existing_projectdetails_SiteDetails.SiteOOB_CheckedBy = model.SiteOOB_CheckedBy;
existing_projectdetails_SiteDetails.DailyComments = model.DailyComments;
existing_projectdetails_SiteDetails.GoldenSite = Convert.ToInt32(Convert.ToBoolean(model.GoldenSite));
existing_projectdetails_SiteDetails.RopeAccess = Convert.ToInt32(Convert.ToBoolean(model.RopeAccess));
existing_projectdetails_SiteDetails.SiteSupervisionRequired = Convert.ToInt32(Convert.ToBoolean(model.SiteSupervisionRequired));
existing_projectdetails_SiteDetails.MEWP = Convert.ToInt32(Convert.ToBoolean(model.MEWP));
existing_projectdetails_SiteDetails.SpecialistKeys = Convert.ToInt32(Convert.ToBoolean(model.SpecialistKeys));
existing_projectdetails_SiteDetails.Crane = Convert.ToInt32(Convert.ToBoolean(model.Crane));
existing_projectdetails_SiteDetails.C4X4ATV = Convert.ToInt32(Convert.ToBoolean(model.C4X4ATV));
existing_projectdetails_SiteDetails.PMTM = Convert.ToInt32(Convert.ToBoolean(model.PMTM));
//Survey
existing_projectdetails_Survey.SurveyType = model.SurveyType;
existing_projectdetails_Survey.SurveyScope = model.SurveyScope;
existing_projectdetails_Survey.ProjectScopeDocumentation = model.ProjectScopeDocumentation;
existing_projectdetails_Survey.SpecialConsiderations = model.SpecialConsiderations;
existing_projectdetails_Survey.C3rdPartyAttendees = model.C3rdPartyAttendees;
existing_projectdetails_Survey.SurveyReviewed_Date = model.SurveyReviewed_Date;
existing_projectdetails_Survey.SurveyUploadedIRIS_Date = model.SurveyUploadedIRIS_Date;
existing_projectdetails_Survey.SurveyUploadedClient_Date = model.SurveyUploadedClient_Date;
existing_projectdetails_Survey.SurveyReviewedBy = model.SurveyReviewedBy;
existing_projectdetails_Survey.SurveyUploadedBy = model.SurveyUploadedBy;
existing_projectdetails_Survey.SurveyUploadedIRISBy = model.SurveyUploadedIRISBy;
existing_projectdetails_Survey.SummaryOfSurvey = model.SummaryOfSurvey;
existing_projectdetails_Survey.SurveyAction1 = model.SurveyAction1;
existing_projectdetails_Survey.SurveyAction1_Detail = model.SurveyAction1_Detail;
existing_projectdetails_Survey.SurveyAction1_Owner = model.SurveyAction1_Owner;
existing_projectdetails_Survey.SurveyAction1_Comments = model.SurveyAction1_Comments;
existing_projectdetails_Survey.SurveyAction2 = model.SurveyAction2;
existing_projectdetails_Survey.SurveyAction2_Detail = model.SurveyAction2_Detail;
existing_projectdetails_Survey.SurveyAction2_Owner = model.SurveyAction2_Owner;
existing_projectdetails_Survey.SurveyAction2_Comments = model.SurveyAction2_Comments;
existing_projectdetails_Survey.SurveyAction3 = model.SurveyAction3;
existing_projectdetails_Survey.SurveyAction3_Detail = model.SurveyAction3_Detail;
existing_projectdetails_Survey.SurveyAction3_Owner = model.SurveyAction3_Owner;
existing_projectdetails_Survey.SurveyAction3_Comments = model.SurveyAction3_Comments;
//DesktopReview
existing_projectdetails_DeskTopReview.ReviewDate = model.ReviewDate;
existing_projectdetails_DeskTopReview.ReviewedBy = model.ReviewedBy;
existing_projectdetails_DeskTopReview.Priority = model.Priority;
existing_projectdetails_DeskTopReview.OnSiteWorksRequired = model.OnSiteWorksRequired;
existing_projectdetails_DeskTopReview.QAReviewDate = model.QAReviewDate;
existing_projectdetails_DeskTopReview.QAReviewBy = model.QAReviewBy;
existing_projectdetails_DeskTopReview.ClientDatabaseUpdatedDate = model.ClientDatabaseUpdatedDate;
existing_projectdetails_DeskTopReview.ClientDatabaseUpdatedBy = model.ClientDatabaseUpdatedBy;
existing_projectdetails_DeskTopReview.WorksWithinprojectScope = model.WorksWithinprojectScope;
existing_projectdetails_DeskTopReview.ForwardLogisticsRequired = model.ForwardLogisticsRequired;
existing_projectdetails_DeskTopReview.ForwardLogisticsDetails = model.ForwardLogisticsDetails;
existing_projectdetails_DeskTopReview.ReverseLogisticsRequired = model.ReverseLogisticsRequired;
existing_projectdetails_DeskTopReview.ReverseLogisticsDetails = model.ReverseLogisticsDetails;
existing_projectdetails_DeskTopReview.ClientScope = model.ClientScope;
existing_projectdetails_DeskTopReview.IRISComments = model.IRISComments;
DB.Entry(existing_projectdetails_DeskTopReview).State = EntityState.Modified;
DB.SaveChanges();
DB.Entry(existing_projectdetails_SiteDetails).State = EntityState.Modified;
DB.SaveChanges();
DB.Entry(existing_projectdetails_Survey).State = EntityState.Modified;
DB.SaveChanges();
我的数据加载:
if(id == null )
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
//Convert ID from nullable int
int projectid = id ?? default(int);
IRISInSiteLiveEntities DB = new IRISInSiteLiveEntities();
var project = new ProjectDetails_MultipleData();
project.ProjectID = projectid;
project.ProjectName = DB.Projects_People.Find(id).ProjectName; //get name by different table.
project.SiteID = siteid;
project.SiteName = sitename;
project.Visit = sitevisit;
var DetailsExist = DB.ProjectDetails_Deployment.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == sitevisit).FirstOrDefault();
if (DetailsExist != null)
{
//Site Details
var site_details = DB.ProjectDetails_SiteDetails.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == sitevisit).FirstOrDefault();
project.SiteAddress = site_details.SiteAddress;
project.SitePostcode = site_details.SitePostcode;
project.NGR = site_details.NGR;
project.LatAndLongs = site_details.LatAndLongs;
project.SiteType = site_details.SiteType;
project.SiteOwner = site_details.SiteOwner;
project.SiteContactDetails = site_details.SiteContactDetails;
project.SiteAccessProvider = site_details.SiteAccessProvider;
project.SiteAccessProvider_ContactDetails = site_details.SiteAccessProvider_ContactDetails;
project.CabinOOB = site_details.CabinOOB;
project.CabinOOB_DateChecked = site_details.CabinOOB_DateChecked;
project.CabinOOB_CheckedBy = site_details.CabinOOB_CheckedBy;
project.TowerOOB = site_details.TowerOOB;
project.TowerOOB_DateChecked = site_details.TowerOOB_DateChecked;
project.TowerOOB_CheckedBy = site_details.TowerOOB_CheckedBy;
project.SiteOOB = site_details.SiteOOB;
project.SiteOOB_DateChecked = site_details.SiteOOB_DateChecked;
project.SiteOOB_CheckedBy = site_details.SiteOOB_CheckedBy;
project.DailyComments = site_details.DailyComments;
project.GoldenSite = Convert.ToBoolean(Convert.ToInt32(site_details.GoldenSite));
project.RopeAccess = Convert.ToBoolean(Convert.ToInt32(site_details.RopeAccess));
project.SiteSupervisionRequired = Convert.ToBoolean(Convert.ToInt32(site_details.SiteSupervisionRequired));
project.MEWP = Convert.ToBoolean(Convert.ToInt32(site_details.MEWP));
project.SpecialistKeys = Convert.ToBoolean(Convert.ToInt32(site_details.SpecialistKeys));
project.Crane = Convert.ToBoolean(Convert.ToInt32(site_details.Crane));
project.C4X4ATV = Convert.ToBoolean(Convert.ToInt32(site_details.C4X4ATV));
project.PMTM = Convert.ToBoolean(Convert.ToInt32(site_details.PMTM));
//Survey
var survey_details = DB.ProjectDetails_Survey.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == sitevisit).FirstOrDefault();
project.SurveyType = survey_details.SurveyType;
project.SurveyScope = survey_details.SurveyScope;
project.ProjectScopeDocumentation = survey_details.ProjectScopeDocumentation;
project.SpecialConsiderations = survey_details.SpecialConsiderations;
project.C3rdPartyAttendees = survey_details.C3rdPartyAttendees;
project.SurveyReviewed_Date = survey_details.SurveyReviewed_Date;
project.SurveyUploadedIRIS_Date = survey_details.SurveyUploadedIRIS_Date;
project.SurveyUploadedClient_Date = survey_details.SurveyUploadedClient_Date;
project.SurveyReviewedBy = survey_details.SurveyReviewedBy;
project.SurveyUploadedBy = survey_details.SurveyUploadedBy;
project.SurveyUploadedIRISBy = survey_details.SurveyUploadedIRISBy;
project.SummaryOfSurvey = survey_details.SummaryOfSurvey;
project.SurveyAction1 = survey_details.SurveyAction1;
project.SurveyAction1_Detail = survey_details.SurveyAction1_Detail;
project.SurveyAction1_Owner = survey_details.SurveyAction1_Owner;
project.SurveyAction1_Comments = survey_details.SurveyAction1_Comments;
project.SurveyAction2 = survey_details.SurveyAction2;
project.SurveyAction2_Detail = survey_details.SurveyAction2_Detail;
project.SurveyAction2_Owner = survey_details.SurveyAction2_Owner;
project.SurveyAction2_Comments = survey_details.SurveyAction2_Comments;
project.SurveyAction3 = survey_details.SurveyAction3;
project.SurveyAction3_Detail = survey_details.SurveyAction3_Detail;
project.SurveyAction3_Owner = survey_details.SurveyAction3_Owner;
project.SurveyAction3_Comments = survey_details.SurveyAction3_Comments;
//DesktopReview
var desktopreview_details = DB.ProjectDetails_DeskTopReview.Where(x => x.ProjectID == id && x.SiteID == siteid && x.Visit == sitevisit).FirstOrDefault();
project.ReviewDate = desktopreview_details.ReviewDate;
project.ReviewedBy = desktopreview_details.ReviewedBy;
project.Priority = desktopreview_details.Priority;
project.OnSiteWorksRequired = desktopreview_details.OnSiteWorksRequired;
project.QAReviewDate = desktopreview_details.QAReviewDate;
project.QAReviewBy = desktopreview_details.QAReviewBy;
project.ClientDatabaseUpdatedDate = desktopreview_details.ClientDatabaseUpdatedDate;
project.ClientDatabaseUpdatedBy = desktopreview_details.ClientDatabaseUpdatedBy;
project.WorksWithinprojectScope = desktopreview_details.WorksWithinprojectScope;
project.ForwardLogisticsRequired = desktopreview_details.ForwardLogisticsRequired;
project.ForwardLogisticsDetails = desktopreview_details.ForwardLogisticsDetails;
project.ReverseLogisticsRequired = desktopreview_details.ReverseLogisticsRequired;
project.ReverseLogisticsDetails = desktopreview_details.ReverseLogisticsDetails;
project.ClientScope = desktopreview_details.ClientScope;
project.IRISComments = desktopreview_details.IRISComments;
}
return View(project);
有更清洁漂亮的方式吗?