我正在使用带有 SQL 2008 R2 数据库的 Visual Studio 2010、ASP.NET MVC 3。
我相信这是一项简单的任务,但我不知道如何措辞。这是我拥有的当前代码。
public static IEnumerable GetAPCBundledCodesData(string CPTCode)
{
var result = (from item in new VADataContext().CPT2MODs
where item.CPT == CPTCode
select new { item.MOD }).ToList();
return result;
}
这将拉取 CPTSMODs 表中的项目列表并将其返回。我想要做的是获取该结果并获取另一个列表,其中包含与具有相同字段 MOD 的另一个名为 Modifiers 的另一个表中具有相同值的每个项目匹配的列表。我不确定如何做这部分。
我希望我已经解释得足够好。让我知道是否需要任何澄清。
我一直在寻找答案,发现我的问题是我可以在 on 语句中有两个 DataContext。如果不是两个 DataContext,我什至不确定这是否可行,但我尝试这样做:
public static IEnumerable GetAPCBundledCodesData(string CPTCode)
{
var result = (from mod in new VADataContext().MODIFIERs
join cpt2mod in new VADataContext().CPT2MODs on mod.MOD equals cpt2mod.MOD
where cpt2mod.CPT == CPTCode
select new { mod.MOD, mod.SHORT }).ToList();
return result;
}
这导致错误提示我无法从两个不同的来源提取数据。有不同的处理方法吗?
这里有一些示例数据来显示这里发生了什么。
表 CPT2MOD
CPT** MOD**
31624 TC
31624 A
31624 DC
99213 B
99213 T
00100 AS
表修饰符
MOD** SHORT**
TC TC Desc
A A Desc
DC DC Desc
B B Desc
T T Desc
AS AS Desc
CPT 代码将被传递给 GetAPCBundledCodesData(例如 99213),它将从 CPT2MOD 表(B,T)中查找与其关联的所有 MOD 值。然后它将从 MODIFIERs 表中返回这些 MOD 以及描述。(B,B 描述;T,T 描述)。
我希望你现在能更好地看到我在问什么。
解决方案
public static IEnumerable GetAPCBundledCodesData(string CPTCode)
{
using (var dc = new VADataContext()){
var result = (from a in dc.CPT2MODs
where a.CPT == CPTCode
join b in dc.MODIFIERs on a.MOD equals b.MOD
select new { b.MOD, b.SHORT }).ToList();
return result;
}
}