2013-08-19 33 views
1

嗨我有一个名为Users的表,它已经有注册用户的id.This表位于名为TrackUsers的不同数据库中。现在我使用称为条款的新数据库,它具有称为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表中显示为空。

+0

请停止将“ASP.NET MVC”简称为“MVC”。一个是框架,而另一个是独立于语言的设计模式。这就像打电话给IE - “互联网” –

+0

我的错误。改变。 – Dev

+0

我会注意到你应该在实体框架上采用t-SQL来进行批量插入。如果你插入大量数据,性能差异可能不是微不足道的。 –

回答

1

假设你有2个.edmx文件(因此每个数据库有不同的dbcontexts),你在找这样的东西吗?至于放置代码的位置,我把它放在服务层(如果存在的话),否则放在Controller类中。

+0

嗨,我只有一个数据库在我的MVC是来自Terms.I试图添加另一个数据库,其中有Trackusers表,它显示MVC中的一些错误。它是由别人开发的,它有更多的文件,所以我甚至不能工作该错误。如果你不介意可以请给我代码,如何从SQL服务器访问trackuser表和更新我在MVC中的表.. – Dev

+0

访问你的trackuser表最简单的方法是通过.edmx文件(请参阅[链接](http://msdn.microsoft.com/en-us/library/cc716703(v = vs.103).aspx)以获取从现有数据库创建一个数据库的指南)。 – valentin

+0

但我得到表没有每个表的主键如果我尝试使用数据库第一种方法为trackuser数据库。但是这个数据库在SQL Server中正常工作。所以我现在应该做什么? – Dev

相关问题