//开始更新准确的双一流
var cx_gxzy = from aa in sjklj.zy_school_zy
where (aa.dm != null && aa.dm.Length > 0)
select aa;
var cx_syl = from aa in sjklj.zy_syl
where (aa.xxdm != null && aa.xxdm.Length > 0)
select aa;
/*
var gx_gxsyl = from aa in cx_gxzy
join bb in cx_syl on aa.dm equals bb.xxdm
select new
{
aa,
bb
};//要更新的数据表放在join左边,显示关联的左边数据表全部记录
foreach(var kk in gx_gxsyl)
{
if(kk.aa.dm==kk.bb.xxdm)//学校标签 关联条件
{
string jb = kk.aa.jb;
//问题在于如何关联的?zy_syl的一个xxdm对应zy_school_zy的dm记录有几十个,因此累加了几十个,即自动累加
if (!string.IsNullOrWhiteSpace(jb))
{
// jb = jb.Trim()+ " 双一流";因为关联的原因,导致" 双一流"被累加了几十次
if(jb.Contains("985") && jb.Contains("211"))
{
jb = "985 211 双一流";
}
else if(jb.Contains("985"))
{
jb = "985 双一流";
}
else if (jb.Contains("211"))
{
jb = "211 双一流";
}
}
else
{
jb = "双一流";
}
kk.aa.jb = jb;
kk.aa.syl = "是";
}
}
sjklj.Configuration.ValidateOnSaveEnabled = false;//出错则显示具体错误
sjklj.SaveChanges();
System.Threading.Thread.Sleep(1000);
*/
//另外建立学校代码+专业名称的关联
/*
var gx_gxsyl_ylxk = from aa in cx_gxzy
join bb in cx_syl on aa.dm + "|" + aa.zymc equals bb.xxdm + "|" + bb.zymc
select new
{
aa,
bb
};//要更新的数据表放在join左边,显示关联的左边数据表全部记录:显示cx_gxzy数据集中dm+"|"+zymc与右边表匹配的所有记录
foreach (var kk in gx_gxsyl_ylxk) //更新aa
{
if (kk.aa.dm + "|" + kk.aa.zymc == kk.bb.xxdm + "|" + kk.bb.zymc)
{
kk.aa.sfylxk = "是";
}
}
*/
var gx_gxsyl_ylxk = from aa in cx_gxzy
join bb in cx_syl
on aa.dm equals bb.xxdm
select new
{
aa,
bb
};//要更新的数据表放在join左边,显示关联的左边数据表全部记录:显示cx_gxzy数据集中dm+"|"+zymc与右边表匹配的所有记录
foreach (var kk in gx_gxsyl_ylxk) //更新aa
{
if (kk.aa.dm == kk.bb.xxdm) //匹配映射学校名称(即上面建立的关联,把equals换成==)
{
// kk.aa.sfylxk = "是";
if(kk.aa.zymc.Contains(kk.bb.zymc) || kk.aa.bhzy.Contains(kk.bb.zymc)) //专业名称不能精确匹配,有的包含专业中有一流学科:这种不能建立两表关联,复杂关系条件放在这里
{
kk.aa.sfylxk = "是";
}
}
}
sjklj.Configuration.ValidateOnSaveEnabled = false;//出错则显示具体错误
sjklj.SaveChanges();
System.Threading.Thread.Sleep(1000);
|