Так что я наливаю этот код навсегда, пытаясь это выяснить ... Я использую Entity Framework 1.0 с ASP.NET MVC в .NET 3.5 SP1 с EFPocoAdapter (так что отдельные классы Poco).
Итак, у меня есть следующий код для одного из контроллеров:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditUser(int? id, FormCollection form)
{
var user = new User();
using (var db = new UMSEntities { DeferredLoadingEnabled = false })
{
if (id != null)
{
user = db.Users.FirstOrDefault(p => p.UserID.Equals((int) id));
db.LoadProperty(user, p => p.UserProfiles);
db.LoadProperty(user, p => p.UserCompanyProfile);
}
else
{
user.UserGuid = Guid.NewGuid();
user.DateCreated = DateTime.Now;
user.DateLastActivity = DateTime.Now;
user.DateModified = DateTime.Now;
user.Password = "demo";
user.Version = 0;
user.SecretAnswer = "";
user.SecretQuestion = "";
user.IsApproved = true;
user.IsActive = true;
user.UserProfiles = new UserProfile();
user.UserCompanyProfile = new UserCompanyProfile
{
EmployeeID = "",
HireDate = DateTime.Now,
Title = "",
UserCode = "",
Company = db.Companies.First(p => p.CompanyID == 8)
};
db.Users.InsertOnSaveChanges(user);
}
TryUpdateModel(user);
db.SaveChanges();
}
Редактирование существующего пользователя работает отлично (обратите внимание, если id! = Null). Тем не менее, это часть кода, которая добавляет нового пользователя. Это работает, пока я не попадаю в ту часть кода, где я добавляю UserCompanyProfile к объекту пользователя. Если я закомментирую этот код, он работает просто отлично. Проблема возникает, когда я пытаюсь присоединить компанию к UserCompanyProfile, запрашивая базу данных - я получаю эту ошибку.
Entities in 'UMSEntities.UserCompanyProfiles' participate in the 'FK__UserCompa__Compa__25869641' relationship. 0 related 'Companies' were found. 1 'Companies' is expected.
Кстати, он действительно возвращает один объект Company (он имеет тип PocoProxies.CompanyProxy). Любая помощь, безусловно, будет оценена!