1
以下は既存レコードの保存ルーチンです。これには何が問題なのですか?私は使用していますindependent associationEF 4.1で独立アソシエーション方式を使用している場合、ナビゲーションプロパティは保存されません
しかし、エラーは発生しませんが、PersonテーブルのCountry_CountryIdフィールドは変更されず、その他のものはすべて正しく保存されます。次のコード/アプローチで何が間違っていますか?
public JsonResult SaveUpdate(Person p)
{
p.Country = new Country { CountryId = new Guid("EF0CD98E-7138-4757-866E-ADC3C8D216DA") };
using (var db = new TheDbContext())
{
db.Entry(p).State = System.Data.EntityState.Modified;
db.SaveChanges();
}
}
ここに私のマッパーです:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Person>().HasRequired(x => x.Country)
.WithMany(x => x.Persons)
.Map(x => x.MapKey("Country_CountryId"));
modelBuilder.Entity<Person>().Property(x => x.RowVersion).IsRowVersion();
modelBuilder.Entity<Country>().HasKey(x => x.CountryId);
}
は、ここに私のモデルです:
public class Country
{
public virtual Guid CountryId { get; set; }
public virtual string CountryCode { get; set; }
public virtual string CountryName { get; set; }
public virtual IList<Person> Persons { get; set; }
}
public class Person
{
public virtual Guid PersonId { get; set; }
public virtual string Username { get; set; }
public virtual string Firstname { get; set; }
public virtual string Lastname { get; set; }
public virtual byte[] RowVersion { get; set; }
public virtual Country Country { get; set; }
}
ありがとうございます。両方のエンティティを接続する必要がありますか?コードは、国のエンティティのみを添付してもOKです。 – Hao
あなたは必要ありません。これは隠された振る舞いがなければ、はるかに説明的です。 –