Скажем, у меня есть два DbContext, один с породами и один с собаками.
public class Dog {
public Breed Breed { get; set; }
public Guid Id { get; set; }
public string Name { get; set; }
}
public class Breed {
public Guid Id { get; set; }
public string Name { get; set; }
}
public class MainUnitOfWork : DbContext
{
public MainUnitOfWork(): base("MainDb") { }
public IDbSet<Breed> Breeds { get; set; }
}
public class NextUnitOfWork : DbContext
{
public NextUnitOfWork() : base("NextDb") { }
public IDbSet<Dog> Dogs { get; set; }
}
Теперь я пытаюсь вставить новую собаку.
var next = new NextUnitOfWork();
var dog = new Dog
{ Id = Guid.NewGuid(), Name = "Fido",
Breed = new Breed { Id = Guid.NewGuid(), Name = "Rotweiler" } };
next.Dogs.Add(dog);
next.SaveChanges();
Теперь я получаю две таблицы в NextDb, одну для собак и одну для пород. Я надеялся, что EF выяснит, что порода действительно принадлежит MainDb, поскольку она объявлена в MainUnitOfWork. Ну, как мне согнуть EF, чтобы сделать то, что я хочу?