3

MVC4 および EF 5 で ASP.Net/C# を使用しています。ID を介して他のいくつかのモデルがリンクされている基本モデルがあります。例えば

 public class Person
    {
        public int Id { get; set; }
        public DateTime? Created { get; set; }
        public DateTime? Submitted { get; set; }
        public DateTime? Finalized { get; set; }

        public string UserProfileSite { get; set; }
        public int UserId { get; set; }

        public virtual ICollection<Demographic> Demographics { get; set; }
        public virtual ICollection<Demographic> Demographics { get; set; }
     }

Demographics には、personId を持つ外部キーがあります。人を追加すると、人口統計情報を入力するために送信されます。ただし、人口統計には personId の外部キーがあるため、個人レコードを作成する必要があります。

次のように、人口統計ビューに移動する前に人物を作成できます。

Person person = new Person();
person.UserId = curuser.UserId;
person.UserProfileSite = curuser.Site;
person.Created = DateTime.Now;
db.Persons.Add(person);
db.SaveChanges();

モデルが personId の外部キーを持つように、データベースに保存したばかりのレコードの personId を取得して Demographics に渡すにはどうすればよいですか?

4

1 に答える 1

13

エンティティ フレームワーク内で changeTracking をオンにしていないと仮定すると、オブジェクトをデータベースに保存した後、オブジェクトの ID を簡単に取得できるはずです。

Person person = new Person();
person.UserId = curuser.UserId;
person.UserProfileSite = curuser.Site;
person.Created = DateTime.Now;
db.Persons.Add(person);
db.SaveChanges();
var personId = person.Id;
于 2013-02-21T16:47:31.653 に答える