我的项目有2个DbContext(在2个实体框架项目中):CoreDbContext
和Module1DbContext
在CoreDbContext
我有一个名为SystemStatus
的表。那么可以从Module1DbContext
向此表插入种子数据吗?我试图将CoreDbContext传递给Module1DbContext中的Seed方法,但它确实有效。
答案 0 :(得分:1)
是。只是新的其他背景,做你需要的。如果CoreDbContext在另一个项目中,您将需要引用它。
protected override void Seed(Module1DbContext context)
{
// get some data from the current context you want to use for seeding
var someItemFromM1 = context.FooBar.FirstOrDefault(fb => fb.Id == myID);
if (someDataFromM1 != null)
{
using (var coreContext = new CoreDbContext())
{
// Using AddOrUpdate which is designed for seeding, but you could just use standard update code
coreContext.SystemStatuses.AddOrUpdate(
ss => ss.Code, // Unique field to check so duplicate not added
new SystemStatus
{
Code = someItemFromM1.Code,
Description = someItemFromM1.Description
});
coreContext.SaveChanges();
}
}
}