表A 为主表
 表A需要表B中的Id 
如果条件相符合则把表B 的id 插入表A的一个字段中,
如果表B中有多条与表A中的数据相符合则id用逗号隔开List<A> AList = AService.Query().Where(s => s.SerialNo == No).ToList();
//第一种:
NHSessionManager.Instance.BeginTransaction();
for (int i = 0; i < AList.Count;i++ )
{
//如果条件相同则关联插入Id,id用“,”隔开
List<B> BList = BService.Query().Where(s => s.SerialNo == AList[i].SerialNo && s.tNo == AList[i].No).ToList();
if (B.Count == 0)
continue;
StringBuilder sb = new StringBuilder();
for (int j = 0; j < BList.Count; j++)
{
if (j >= 1)
sb.Append(",");
sb.Append(BList[j].Id);
}
AList[i].PlanView = sb.ToString();
AService.SaveOrUpdate(AList[i]);
}
NHSessionManager.Instance.CommitTransaction();

解决方案 »

  1.   

    Join一下      List<A> AList = AService.Query().Where(s => s.SerialNo == No).ToList();
          //取得满足条件的B的id集合
          string result = string.Join(",", (from A in AList join B in BService
                 on new{A.SerialNo, A.No} equals new{B.SerialNo, B.tNo}
                 select B.id).ToArray()
          );
      

  2.   

    忘了带where条件了,自己加上吧
      

  3.   

    表A 为主表
     表A需要表B中的Id  
    如果条件相符合则把表B 的id 插入表A的一个字段中,
    如果表B中有多条与表A中的数据相符合则id用逗号隔开
    帮忙写个Oracle的存储过程