gpt4 book ai didi

C# Linq to SQL - IEnumerable 连接两个数据表/上下文

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:54 24 4
gpt4 key购买 nike

我正在使用 Visual Studio 2010、ASP.NET MVC 3 和 SQL 2008 R2 数据库。

我认为这是一项简单的任务,但我不知道该如何表达。这是我目前的代码。

 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;
}
}

最佳答案

仅使用一个 ObjectContext - 并使用 using(非常重要):

using(var dc = new VADataContext()){
var result = (from mod in dc.MODIFIERs
join cpt2mod in dc.CPT2MODs on mod.MOD equals cpt2mod.MOD
where cpt2mod.CPT == CPTCode
select new { mod.MOD, mod.SHORT }).ToList();
return result;
}

顺便说一句 - Entity Framework 通常不会调用它生成的类 DataContext - 这是 Linq to SQL 的东西 - 你确定你真的在使用 Entity Framework 吗?它实际上与修复没有任何关系,它只是一个澄清请求。

关于C# Linq to SQL - IEnumerable 连接两个数据表/上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12171205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com