自己初学EF,发现code first这个方法可以对已有数据库进行操作,也能新建数据库,所以测试一下能否把从已知数据库里查询到的值对应地写到新的数据库里呢?代码如下图,但是这只是查询的过程,要把显示结果存储到新建数据库里该怎么办?
namespace
CodeFirstExistingDatabaseSample
{
publicclass
Program
{
staticvoid Main(string
[] args)
{
using (var db = newNorthwindContext
())
{
{
Console.Write("Enter a name for a new Product: "
);
var productname = Console
.ReadLine();
var product = newProduct
{ ProductName = productname };
db.Products.Add(product);
db.SaveChanges();
var query = (from p in
db.Products
orderby
p.ProductName.Length
select
p).ToList();
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();
}
}
}
}
}
需要用两个DbContext
我不太会写第二个 可以在主程序里写吗?
我用codefirst 新建了一个NewProductContext 然后就不知道怎么去调用之前query的结果了
@Seajay: 这样的场景没有必要用EF
@dudu: 您好,请问您说的没必要用是什么意思?我想用EF code first 把数据库里的数据写到新的数据库里。这样不可以吗?
@Seajay: 用EF实现这个反而将问题复杂化了
你还不如直接把查询数据放到memcached里呢,memcached放在另外的内存服务器里,code-first太费内存了也费性能我快要放弃了,转投别的orm阵营或者直接回归ADO.net.
用cyq.data就可以了~很简单~~