【发布时间】:2010-03-29 23:35:58
【问题描述】:
我有一个名为 Protocol 的表,一个名为 Eligibility 的表,以及一个将两者映射在一起的 Protocol_Eligibilty 表(多对多关系)。如果我想在 Protocol 表中创建一个条目的完美副本,并在 Protocol_Eligibility 表中创建所有需要的映射,从性能的角度来看,使用 SQL 视图会有所帮助吗? Protocol 大约有 1000 行,Eligibility 大约有 200 行,我希望每个 Protocol 映射到大约 10 Eligibility 行,每个 Eligibility 映射到 Protocol 中的 100 多行。
这是我对视图的处理方式:
var pel_original = (from pel in _documentDataModel.Protocol_Eligibility_View
where pel.pid == id
select pel);
Protocol_Eligibility newEligibility;
foreach (var pel_item in pel_original)
{
newEligibility = new Protocol_Eligibility();
newEligibility.Eligibility = (from pel in _documentDataModel.Eligibility
where pel.ID == pel_item.eid
select pel).First();
newEligibility.Protocol = newProtocol;
newEligibility.ordering = pel_item.ordering;
_documentDataModel.AddToProtocol_Eligibility(newEligibility);
}
这是没有视图的:
var pel_original = (from pel in _documentDataModel.Protocol_Eligibility
where pel.Protocol.ID == id
select pel);
Protocol_Eligibility newEligibility;
foreach (var pel_item in pel_original)
{
pel_item.EligibilityReference.Load();
newEligibility = new Protocol_Eligibility();
newEligibility.Eligibility = pel_item.Eligibility;
newEligibility.Protocol = newProtocol;
newEligibility.ordering = pel_item.ordering;
_documentDataModel.AddToProtocol_Eligibility(newEligibility);
}
【问题讨论】:
标签: sql-server asp.net-mvc entity-framework