您好我有一个名为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表中显示为空。
答案 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类中。