1

嗨,我有一个名为 Users 的表,它已经有已注册用户的 id。该表位于名为 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 表中显示为空。

4

1 回答 1

3

假设您有 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();
}

至于代码放在哪里,我会把它放在服务层(如果存在的话),否则放在控制器类中。

于 2013-08-19T10:00:59.897 回答