Я использую Entity Framework 4.1 (сначала базу данных, например, «старая школа»), и я использую POCO в веб-приложении ASP.NET MVC 3.
У меня есть 1 -0..1 отношения между Foo
и Bar
, подкрепленные nullable int в таблице Foo
.
Мой POCO выглядит следующим образом:
public class Foo
{
public Bar Bar { get; set;
}
public class Bar
{
public int BarId { get;set; }
}
Теперь у меня есть Foo
, который уже существует в системе, но BarId
является нулевым.
Теперь я пытаюсь связать это Foo
с существующим Bar
.
Вот код, который я получил:
var existingBar = _repo.GetBar(2);
var existingFoo = _repo.GetFoo(1);
existingFoo.Bar = existingBar;
Но за кулисами EF добавляет new Bar
.Почему?
Я также попробовал это:
existingFoo.Bar = new Bar { BarId = 2 };
Например, «метод заглушки», но приводит к тому, что EF жалуется на пустые столбцы (потому что опять пытается создать «новый» бар).
Я уверен, что я делал это раньше - я просто надеюсь, что решение, которое я выбрал, не было "использовать SP".
Как я уже говорил - я 'Я использую POCO, поэтому у меня нет прямого доступа к DbContext
или ObjectContext
с моего контроллера.
Любой совет?