그래서이 코드를 영원히 쏟아내어 이것을 알아 내려고했습니다 ... .NET 3.5 SP1에서 Entity Framework 1.0을 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.
, 그것은 사실상 하나 개의 회사 객체를 (이 타입 PocoProxies.CompanyProxy이다) 반환 않습니다. 어떤 도움이라도 분명히 인정 될 것입니다!
"p"는 어디에 선언합니까? – Julen