Другим способом является присоединение местоположения к контексту перед добавлением действия:
using(var context = new MyDbContext())
{
var location = new Location { Name = "MyName" };
context.Locations.Attach(location);
var activity = new Activity { Personnel = "Foo", Location = location };
context.Activities.Add(activity);
context.SaveChanges();
}
Это спасает вас от извлечения местоположения из БД.
Другой вариант (который требуетизменить модель, хотя), чтобы выставить внешний ключ для местоположения классу Activity:
public class Activity
{
public int ID {get;set;}
public string Personnel { get; set; }
[ForeignKey("Location")]
public string LocationName { get; set; }
public Location Location { get; set; }
}
Тогда вы можете просто присвоить значение FK:
using(var context = new MyDbContext())
{
var activity = new Activity { Personnel = "Foo", LocationName = "MyName" };
context.Activities.Add(activity);
context.SaveChanges();
}
Оставить Location
свойство навигации null
в этом случае.