EF4 CodeFirst CTP4 - Вставить с существующей ассоциацией - PullRequest
1 голос
/ 03 сентября 2010

Если у меня есть объект, имеющий ассоциацию (например, Book.Publisher), как мне сохранить новую книгу и связать ее с существующим издателем?

Кстати, я не хочувыставить ассоциации FK (т.е. PublisherId) в моей модели.

Я использовал что-то вроде этого:

var book = new Book { Title="whatever", Publisher = new Publisher { Id = 42 } };
context.Books.Add(book);

Но это просто попытка добавить нового издателя.

Я видел этот вопрос , в котором предлагалось использовать ObjectStateManager.ChangeObjectState, но я получаю ошибку, если пытаюсь это сделать - ObjectStateManager не содержит ObjectStateEntry со ссылкой на объект типа 'Blah.Издательство».

1 Ответ

3 голосов
/ 03 сентября 2010
var pub = new Publisher { Id = 42 };
context.Publishers.Attach(pub);
var book = new Book { Title="whatever", Publisher = pub };
context.Books.Add(book);
...