1

こんにちは、既に登録されているユーザーの ID を持つ Users というテーブルがあります。このテーブルは、TrackUsers という名前の別のデータベースにあります。現在、ユーザーテーブルからすべてのIDを取得してこのテーブルに挿入するIDというフィールドを持つTermsという新しいデータベースを使用しています。このために、データベースの最初のアプローチを使用しました。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 テーブルで null を示しています。

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 に答える