如何使用Entity框架将已存在于一个表中的数据插入另一个表中

时间:2013-08-19 09:44:17

标签: asp.net-mvc entity-framework

您好我有一个名为Users的表已经注册了用户的id。这个表位于不同的数据库中,名为TrackUsers。现在我正在使用名为Terms的新数据库,其中包含名为ID的字段,该字段应从用户表中获取所有ID并插入此表。对于此,我使用了数据库第一种方法。 我正在使用ASP.NET MVC实体框架。下面是我在控制器中使用的代码:

 public class HomeController : Controller
{

    private AppMarketplaceEntities db = new AppMarketplaceEntities();
    private InstallTrackerEntities db1 = new InstallTrackerEntities();


   public ActionResult Index()
    {
   List<int> gatewayUserId = new List<int>();

        using (var ctx = new InstallTrackerEntities())
        {
            gatewayUserId = ctx.Gateway_Users.Select(f => f.GatewayuserUID).ToList();
        }
        using (var ctx2 = new AppMarketplaceEntities())
        {
            foreach (var id in gatewayUserId)
            {
                ctx2.AppTerms.Add(new AppTerm() { GatewayuserUID = id });
            }
            db.SaveChanges();
        }

        return View();  
        }

        }
        }

但仍然是GatewayUserUID在Appterms表中显示为空。

1 个答案:

答案 0 :(得分:2)

假设你有2个.edmx文件(因此每个数据库都有不同的dbcontexts),你在找这样的东西吗?

List<int> userids = new List<int>();
using(var ctx = new TrackUsersEntities())
{
    userids = ctx.Users.Select(f => f.UserId).ToList();
}

using(var ctx2 = new OtherDatabaseEntities())
{
    foreach(var id in userids)
    {
        ctx2.Terms.Add(new Term() { ID = id });
    }
    ctx2.SaveChanges();
}

至于放置代码的位置,我将它放在Services层(如果存在)中,否则放在Controller类中。