如何将查询结果从现有表传递并保存到另一个新表中

本文关键字:保存 新表中 另一个 查询 结果 | 更新日期: 2023-09-27 18:25:11

我正在为一个新数据库和一个现有数据库使用entityframework codefirst。现在,我想将查询结果从Northwind中的表Products保存到NewProductContext中一个名为NewProducts的新表中。在这个解决方案中,我创建了一个名为NewProductContext的类,我只是用它来创建一个具有两列id和newname的新数据库;

static void Main(string[] args)
    {
        using (var db = new NorthwindContext())
        {
            {
                Console.Write("Enter a name for a new Product: ");
                var productname = Console.ReadLine();
                var product = new Product { ProductName = productname };
                db.Products.Add(product);
                db.SaveChanges();
                //LINQ query for the table
                var query = from p in db.Products
                            //where p.ProductName.Contains("A")
                            orderby p.ProductName.Length
                            select p;
                Console.WriteLine("All products in the database:");
                foreach (var item in query)
                {
                    Console.WriteLine(item.ProductName);
                }
                Console.WriteLine("Press any key to exit...");
                Console.ReadKey();
            }
        }
    /*    using (var db1 = new NewProductContext())
        {
            foreach (var item in query) 
            {   
                var newpro = item;
                db.NewProducts.Add(item)
                db.Savechanges();
            }
        }*/

评论中的方法只是我的想法,我知道有很多错误。但是,有人能提供一种新的方法来保存查询结果吗?我用这个代码创建了数据库

namespace CodeFirstExistingDatabaseSample
{
    public class NewProduct
    {
        public int NewProductID { get; set; }
        public string NewProductName { get; set; }
    }
    public class NewProductContext : DbContext
    {
        public DbSet<NewProduct> NewProducts { get; set; }
    }
}

如何将查询结果从现有表传递并保存到另一个新表中

普通sql怎么样?类似的东西

INSERT INTO targetDatabase.new_products (id,newname) 
(SELECT id, name FROM sourceDatabase.products);

当然,这两个数据库必须在同一服务器上