使用数据表联接Linq实体
本文关键字:Linq 实体 数据表 | 更新日期: 2024-07-23 03:10:42
我想用linq实体连接数据表。这是代码,希望你能完全理解我在这里用代码做什么
var db = new TempR_ClientRCEntities();
DataTable dbc = GetAllSites();
List<object> temp = dbc.AsEnumerable().ToList<object>();
var thermoTypes = from type in db.TempR_ThermometerType
join site in dbc on type.SiteID equals dbc.SiteId
select type;
您可以使用join,但这需要将所有温度计类型加载到客户端(假设站点id为整数类型):
var query = from t in db.TempR_ThermometerType.AsEnumerable()
join r in dbc.AsEnumerable()
on t.SiteID equals r.Field<int>("SiteId")
select t;
或者,您可以使用服务器端的温度计类型过滤,但在这种情况下,您需要将站点ID传递给服务器-它将生成SQL运算符in):
var ids = dbc.AsEnumerable().Select(r => r.Field<int>("SiteId")).Distinct();
var query = from t in db.TempR_ThermometerType
where ids.Contains(t.SiteID)
select t;