これを理解するために、このコードを永久に注ぎ込んでいます... .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の場合)の作品:
は、だから私は、コントローラの1のために、次のコードを持っています。ただし、新しいユーザーを追加するのはコードの部分です。これは、ユーザーオブジェクトにUserCompanyProfileを追加するコードの部分に到達するまで機能します。このコードをコメントアウトすると、うまく動作します。この問題は、データベースを照会してUserCompanyProfileに会社を添付しようとすると発生します。このエラーが発生します。ところで
Entities in 'UMSEntities.UserCompanyProfiles' participate in the 'FK__UserCompa__Compa__25869641' relationship. 0 related 'Companies' were found. 1 'Companies' is expected.
、それは実際には1つの会社のオブジェクトを(それがタイプPocoProxies.CompanyProxyである)を返すん。どんな助けでも確実に高く評価されます!
"p"はどこで宣言しますか? – Julen